Jump to content

The Big Show

Members
  • Posts

    5
  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling
  • Location
    ontario caloocan

Recent Profile Visitors

1438 profile views

The Big Show's Achievements

Poring

Poring (1/15)

0

Reputation

  1. This was actually my 4th time to use this Quest shop script by Euphy and i already make sure that all the "qshop" from all other npc's are UNIQUE. Still, i am getting this kind of Error "npc_parse_function: Overwriting user function [qshopwep1]" //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6b //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //= 1.6b Added 'disable_items' command. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ hugel,217,228,6 script WeaponShopQuest 856,{ callfunc "qshopwep1"; } // Script Core //============================================================ - script questshopweps#1 -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Weapons"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,30007,1,0,0,7451,5,7091,2,7440,300,7038,300,7227,200,26080,100); Add(1,30014,1,0,0,7451,5,7090,2,7345,300,7038,300,7227,200,26080,100); Add(1,30017,1,0,0,7451,5,7089,2,7441,300,7038,300,7227,200,26080,100); Add(1,30019,1,0,0,7451,5,7088,2,7038,300,7020,20,7227,200,26080,100); Add(1,30023,1,0,0,7450,3,7086,2,7345,300,7435,300,7227,200,26080,100); Add(1,30016,1,0,0,7450,3,7078,2,1059,300,7009,300,1036,100,7227,200,26080,100); Add(1,30014,1,0,0,7450,3,7086,2,7038,300,7166,200,7227,200,26080,100); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshopwep1"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshopwep1"+.@i,1; npcshopattach "qshopwep1"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; disable_items; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshopwep1"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshopwep1 { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "questshopweps#1::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshopwep1 -1,909:-1 - shop qshopwep2 -1,909:-1 - shop qshopwep3 -1,909:-1 - shop qshopwep4 -1,909:-1 - shop qshopwep5 -1,909:-1
  2. Can you please help me? I already replaced all the "qshop" in the script but still im having some errors. I can only see a jellopy in the NPC //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6b //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //= 1.6b Added 'disable_items' command. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ hugel,217,228,6 script WeaponShopQuest 856,{ callfunc "qshopw"; } // Script Core //============================================================ - script questshopwep#1 -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Weapons"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,30007,1,0,0,7451,5,7091,2,7440,300,7038,300,7227,200,26080,100); Add(1,30014,1,0,0,7451,5,7090,2,7345,300,7038,300,7227,200,26080,100); Add(1,30017,1,0,0,7451,5,7089,2,7441,300,7038,300,7227,200,26080,100); Add(1,30019,1,0,0,7451,5,7088,2,7038,300,7020,20,7227,200,26080,100); Add(1,30023,1,0,0,7450,3,7086,2,7345,300,7435,300,7227,200,26080,100); Add(1,30016,1,0,0,7450,3,7078,2,1059,300,7009,300,1036,100,7227,200,26080,100); Add(1,30014,1,0,0,7450,3,7086,2,7038,300,7166,200,7227,200,26080,100); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshopw"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshopw"+.@i,1; npcshopattach "qshopw"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; disable_items; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshopw"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshopw { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "questshopwep#1::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshopw1 -1,909:-1 - shop qshopw2 -1,909:-1 - shop qshopw3 -1,909:-1 - shop qshopw4 -1,909:-1 - shop qshopw5 -1,909:-1
  3. Hi Euphy!

    Im actually having this error? Can you help me? 

     

    Untitled.jpg

    1. The Big Show

      The Big Show

      *Script*

      //===== rAthena Script =======================================
      //= Euphy's Quest Shop
      //===== By: ==================================================
      //= Euphy
      //===== Current Version: =====================================
      //= 1.6b
      //===== Compatible With: =====================================
      //= rAthena SVN r16862+
      //===== Description: =========================================
      //= A dynamic quest shop based on Lunar's, with easier config.
      //= Includes support for multiple shops & cashpoints.
      //= Item Preview script by ToastOfDoom.
      //===== Additional Comments: =================================
      //= 1.0 Initial script.
      //= 1.2 Added category support.
      //= 1.3 More options and fixes.
      //= 1.4 Added debug settings.
      //= 1.5 Replaced categories with shop IDs.
      //= 1.6 Added support for purchasing stackables.
      //= 1.6a Added support for previewing costumes and robes.
      //= 1.6b Added 'disable_items' command.
      //============================================================

      // Shop NPCs -- supplying no argument displays entire menu.
      //    callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
      //============================================================
      hugel,217,228,6    script    WeaponShopQuest    856,{ callfunc "qshopw"; }


      // Script Core
      //============================================================
      -    script    questshopwep#1    -1,{ 
      function Add; function Chk; function Slot; function A_An;
      OnInit:
          freeloop(1);

      // -----------------------------------------------------------
      //  Basic shop settings.
      // -----------------------------------------------------------

          set .Announce,1;    // Announce quest completion? (1: yes / 0: no)
          set .ShowSlot,1;    // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
          set .ShowID,0;      // Show item IDs? (1: yes / 0: no)
          set .ShowZeny,0;    // Show Zeny cost, if any? (1: yes / 0: no)
          set .MaxStack,100;    // Max number of quest items purchased at one time.

      // -----------------------------------------------------------
      //  Points variable -- optional quest requirement.
      //    setarray .Points$[0],"<variable name>","<display name>";
      // -----------------------------------------------------------

          setarray .Points$[0],"#CASHPOINTS","Cash Points";

      // -----------------------------------------------------------
      //  Shop IDs -- to add shops, copy dummy data at bottom of file.
      //    setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
      // -----------------------------------------------------------

          setarray .Shops$[1],"Weapons";

      // -----------------------------------------------------------
      //  Quest items -- do NOT use a reward item more than once!
      //    Add(<shop ID>,<reward ID>,<reward amount>,
      //        <Zeny cost>,<point cost>,
      //        <required item ID>,<required item amount>{,...});
      // -----------------------------------------------------------

          Add(1,30007,1,0,0,7451,5,7091,2,7440,300,7038,300,7227,200,26080,100);
          Add(1,30014,1,0,0,7451,5,7090,2,7345,300,7038,300,7227,200,26080,100);
          Add(1,30017,1,0,0,7451,5,7089,2,7441,300,7038,300,7227,200,26080,100);
          Add(1,30019,1,0,0,7451,5,7088,2,7038,300,7020,20,7227,200,26080,100);
          Add(1,30023,1,0,0,7450,3,7086,2,7345,300,7435,300,7227,200,26080,100);
          Add(1,30016,1,0,0,7450,3,7078,2,1059,300,7009,300,1036,100,7227,200,26080,100);
          Add(1,30014,1,0,0,7450,3,7086,2,7038,300,7166,200,7227,200,26080,100);
      // -----------------------------------------------------------

          freeloop(0);
          set .menu$,"";
          for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
              set .menu$, .menu$+.Shops$[.@i]+":";
              npcshopdelitem "qshopw"+.@i,909;
          }
          end;

      OnMenu:
          set .@size, getarraysize(@i);
          if (!.@size) set .@i, select(.menu$);
          else if (.@size == 1) set .@i, @i[0];
          else {
              for(set .@j,0; .@j<.@size; set .@j,.@j+1)
                  set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
              set .@i, @i[select(.@menu$)-1];
          }
          deletearray @i[0],getarraysize(@i);
          if (.Shops$[.@i] == "") {
              message strcharinfo(0),"An error has occurred.";
              end;
          }
          dispbottom "Select one item at a time.";
          callshop "qshopw"+.@i,1;
          npcshopattach "qshopw"+.@i;
          end;

      OnBuyItem:
          // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
          setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
          copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
          set .@q[2],.@q[1]*.@q[3];
          if (!.@q[2] || .@q[2] > 30000) {
              message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
              end;
          }
          mes "[Quest Shop]";
          mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
          mes "Requirements:";
          disable_items;
          if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
          if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
          if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
              mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
          next;
          setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
          if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))
              set .@preview,1;
          addtimer 1000, strnpcinfo(0)+"::OnEnd";
          while(1) {
              switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
              case 1:
                  if (@qe[0]) { 
                      mes "[Quest Shop]";
                      mes "You're missing one or more quest requirements.";
                      close;
                  }
                  if (!checkweight(.@q[0],.@q[2])) {
                      mes "[Quest Shop]";
                      mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
                      close;
                  }
                  if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
                  if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
                  if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
                      delitem .@q[.@i],.@q[.@i+1]*.@q[1];
                  getitem .@q[0],.@q[2];
                  if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;
                  specialeffect2 EF_FLOWERLEAF;
                  close;
              case 2:
                  setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;
                  if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];
                  else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];
                  else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];
                  else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];
                  break;
              case 3:
                  close;
              }
          }

      OnEnd:
          if (@qe[7]) {
              changelook LOOK_HEAD_BOTTOM, @qe[3];
              changelook LOOK_HEAD_TOP, @qe[4];
              changelook LOOK_HEAD_MID, @qe[5];
              changelook LOOK_ROBE, @qe[6];
          }
          deletearray @qe[0],8;
          end;

      function Add {
          if (getitemname(getarg(1)) == "null") {
              debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
              return;
          }
          setarray .@j[0],getarg(2),getarg(3),getarg(4);
          for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
              if (getitemname(getarg(.@i)) == "null") {
                  debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
                  return;
              } else
                  setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
          }
          copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
          npcshopadditem "qshopw"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
          return;
      }

      function Chk {
          if (getarg(0) < getarg(1)) {
              set @qe[0],1;
              return "^FF0000";
          } else
              return "^00FF00";
      }

      function Slot {
          set .@s$,getitemname(getarg(0));
          switch(.ShowSlot) {
              case 1: if (!getitemslots(getarg(0))) return .@s$;
              case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
              default: return .@s$;
          }
      }

      function A_An {
          setarray .@A$[0],"a","e","i","o","u";
          set .@B$, "_"+getarg(0);
          for(set .@i,0; .@i<5; set .@i,.@i+1)
              if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
          return "a "+getarg(0);
      }
      }

      function    script    qshopw    {
          deletearray @i[0],getarraysize(@i);
          for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
              set @i[.@i],getarg(.@i);
          doevent "questshopwep#1::OnMenu";
          end;
      }


      // Dummy shop data -- copy as needed.
      //============================================================
      -    shop    qshopw1    -1,909:-1
      -    shop    qshopw2    -1,909:-1
      -    shop    qshopw3    -1,909:-1
      -    shop    qshopw4    -1,909:-1
      -    shop    qshopw5    -1,909:-1

  4. What should i put in the Skin?
  5. whenever i view the grf files it always show "squares squares squares" inside the data/sprite folder anyone got the same prob? please help me with the fix.. thank you so much for your time.
×
×
  • Create New...