Jump to content
pinyinhuo

Hello, I would like to duplicate the npc in other towns? any idea?

Recommended Posts

 

Hi,

 

Everytime i try to duplicate this to other town, it duplicate the items inside the shop aswell

Hoping you can help me with this =(

 

Thanks!

 








//===== rAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.4a
//===== Compatible With: =====================================
//= rAthena SVN r15340+
//===== Description: =========================================
//= A dynamic quest shop based on Lunar's, with easier config.
//= Includes support for multiple shops & cashpoints.
//= Item Preview script by ToastOfDoom.
//============================================================


prontera,102,78,5 script Vote Shop 811,{
function Add; function Chk; function Slot; function A_An;


if(.Shops$ != "") set [email protected],1;
else {
set [email protected]$,"";
for(set [email protected],1; [email protected]<=getarraysize(.Shops$); set [email protected],[email protected]+1)
set [email protected]$, [email protected]$+.Shops$[[email protected]]+":";
set [email protected], select([email protected]$); }
dispbottom "Select one item at a time.";
callshop "qshop2"[email protected],1;
npcshopattach "qshop2"[email protected];
end;


function Add {
if (getitemname(getarg(1))=="null") {
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
for(set [email protected],5; [email protected]<127; set [email protected],[email protected]+2) {
if (!getarg([email protected],0)) break;
if (getitemname(getarg([email protected]))=="null") {
debugmes "Quest requirement #"+getarg([email protected])+" invalid (skipped)."; return; } }
for(set [email protected],2; [email protected]<[email protected]; set [email protected],[email protected]+1)
set getd(".q_"+getarg(1)+"["+([email protected])+"]"), getarg([email protected]);
npcshopadditem "qshop2"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
return; }
function Chk {
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
else return "^00FF00"; }
function Slot {
set [email protected]$,getitemname(getarg(0));
switch(.ShowSlot){
case 1: if (!getitemslots(getarg(0))) return [email protected]$;
case 2: if (getiteminfo(getarg(0),11)>0) return [email protected]$+" ["+getitemslots(getarg(0))+"]";
default: return [email protected]$; } }
function A_An {
setarray [email protected]$[0],"a","e","i","o","u";
set [email protected]$, "_"+getarg(0);
for(set [email protected],0; [email protected]<5; set [email protected],[email protected]+1)
if (compare([email protected]$,"_"[email protected]$[[email protected]])) return "an "+getarg(0);
return "a "+getarg(0); }


OnBuyItem:
set [email protected][0],@bought_nameid;
copyarray [email protected][1],getd(".q_"[email protected]_nameid+"[0]"),getarraysize(getd(".q_"[email protected]_nameid+"[0]"));
if ([email protected][1]) { message strcharinfo(0),"An error has occurred."; end; }
mes "[Quest Shop]";
mes "Reward: ^0055FF"+(([email protected][1]>1)[email protected][1]+"x ":"")+Slot([email protected][0])+"^000000";
mes "Requirements:";
if ([email protected][2]) mes " > "+Chk(Zeny,[email protected][2])[email protected][2]+" Zeny^000000";
if ([email protected][3]) mes " > "+Chk(getd(.Points$[0]),[email protected][3])[email protected][3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"[email protected][3]+")^000000";
if ([email protected][4]) for(set [email protected],4; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+2)
mes " > "+Chk(countitem([email protected][[email protected]]),[email protected][[email protected]+1])+((.DisplayID)?"{"[email protected][[email protected]]+"} ":"")+Slot([email protected][[email protected]])+" ("+countitem([email protected][[email protected]])+"/"[email protected][[email protected]+1]+")^000000";
next;
set @qe1, getiteminfo([email protected][0],5); set @qe2, getiteminfo([email protected][0],11);
addtimer 1000, strnpcinfo(1)+"::OnEnd";
while(1){
switch(select(" ~ Purchase ^0055FF"+getitemname([email protected][0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && [email protected])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
case 1:
if (@qe0) { 
mes "[Quest Shop]";
mes "You're missing one or more quest requirements.";
close; }
if (!checkweight([email protected][0],[email protected][1])) {
mes "[Quest Shop]";
mes "^FF0000You need "+((([email protected][1]*getiteminfo([email protected][0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
close; }
if ([email protected][2]) set Zeny, [email protected][2];
if ([email protected][3]) setd .Points$[0], getd(.Points$[0])[email protected][3];
if ([email protected][4]) for(set [email protected],4; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+2)
delitem [email protected][[email protected]],[email protected][[email protected]+1];
getitem [email protected][0],[email protected][1];
if (.Announce) announce strcharinfo(0)+" has bought "+A_An(getitemname([email protected][0]))+"` Thank You for Voting!",0;
specialeffect2 699;
close;
case 2:
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
if (@qe1&1) atcommand "@changelook 3 "[email protected];
if (@qe1&256) atcommand "@changelook 1 "[email protected];
if (@qe1&512) atcommand "@changelook 2 "[email protected];
set @qe6,1;
break;
case 3:
close; } }
OnEnd:
if (@qe6) { atcommand "@changelook 3 "[email protected]; atcommand "@changelook 1 "[email protected]; atcommand "@changelook 2 "[email protected]; }
for(set [email protected],0; [email protected]<7; set [email protected],[email protected]+1) setd "@qe"[email protected],0;
end;
OnInit:
freeloop(1);
// --------------------- Config ---------------------
// Custom points, if needed: "<variable>","<name to display>"
setarray .Points$[0],"#CASHPOINTS","Cash Points";


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 .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no)


// Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};
// Duplicate dummy data for any additional shops (bottom of script).
// If no categories, use the second line instead (remove //).


setarray .Shops$[1],"Vote4Cash Items","Vote4Cash Items 2";
// set .Shops$,"n/a";


// Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,
//     <required item ID>,<required item amount>{,...});
// Shop number corresponds with order above (default is 1).
// Note: Do NOT use a reward item more than once!


Add(1,14533,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0);
Add(1,12210,1,0,10,0,0,0,0,0,0,0,0,0,0,0,0);
Add(1,7619,1,0,10,0,0,0,0,0,0,0,0,0,0,0,0);
Add(1,7620,1,0,10,0,0,0,0,0,0,0,0,0,0,0,0);
Add(1,13698,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0);
Add(1,13697,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0);


Add(2,5213,1,0,100,0,0,0,0,0,0,0,0,0,0,0,0);
Add(2,5210,1,0,150,0,0,0,0,0,0,0,0,0,0,0,0);
Add(2,12622,1,0,30,0,0,0,0,0,0,0,0,0,0,0,0);










// --------------------------------------------------
freeloop(0);
for(set [email protected],1; [email protected]<=getarraysize(.Shops$); set [email protected],[email protected]+1)
npcshopdelitem "qshop2"[email protected],909;
end;
}


// -------- Dummy data (duplicate as needed) --------
- shop qshop21 -1,909:-1
- shop qshop22 -1,909:-1

Edited by sandbox
codebox'd
Link to comment
Share on other sites

http://rathena.org/wiki/Basic_Scripting#Duplicating

 

Of course it will duplicate the items inside it, thats the way it works.

 

Other way for doing this(you will be able to add different items) - http://rathena.org/board/topic/94925-npc-quest-shop/#entry255096

Edited by Veracious
Link to comment
Share on other sites

http://rathena.org/wiki/Basic_Scripting#Duplicating

 

Of course it will duplicate the items inside it, thats the way it works.

 

Other way for doing this(you will be able to add different items) - http://rathena.org/board/topic/94925-npc-quest-shop/#entry255096

 

 

Thanks,

 

My major problem now is that when i duplicate the shop in other town, it does duplicated the item inside the shop aswell,

 

its like when i put 1 Elunium, it becomes 2 Elunium but in different slot.

 

 

/ Once again i would like to thank you Veracious, I am now trying to figure how to make this work, i will let you know on the outcome. Thanks! such a great help! <3

Edited by pinyinhuo
Link to comment
Share on other sites

Thanks,

 

My major problem now is that when i duplicate the shop in other town, it does duplicated the item inside the shop aswell,

 

its like when i put 1 Elunium, it becomes 2 Elunium but in different slot.

 

Just go through this topic its the same - http://rathena.org/board/topic/94925-npc-quest-shop/

 

EDIT : 1) You need to copy the script you're using 2) Make a new script and paste the original script inside it 3) Do the changes as shown in the above link i.e. replacing q_shop & qsho1,qshop2,qshop3 etc 4) This will make it like 2 different scripts and you can now have different items in your 2nd script.

Edited by Veracious
Link to comment
Share on other sites

Hi,

 

I just did installed it to my server, the problem is? it doesnt show what i put ._. like manuals or potions idk whats wrong @[email protected]

http://rathena.org/wiki/Basic_Scripting#Duplicating

 

Of course it will duplicate the items inside it, thats the way it works.

 

Other way for doing this(you will be able to add different items) - http://rathena.org/board/topic/94925-npc-quest-shop/#entry255096

Link to comment
Share on other sites

 

Hi,

 

I just did installed it to my server, the problem is? it doesnt show what i put ._. like manuals or potions idk whats wrong @[email protected]

http://rathena.org/wiki/Basic_Scripting#Duplicating

 

Of course it will duplicate the items inside it, thats the way it works.

 

Other way for doing this(you will be able to add different items) - http://rathena.org/board/topic/94925-npc-quest-shop/#entry255096

 

 

Did you do this already?

 

EDIT : 1) You need to copy the script you're using 2) Make a new script and paste the original script inside it 3) Do the changes as shown in the above link i.e. replacing q_shop & qsho1,qshop2,qshop3 etc 4) This will make it like 2 different scripts and you can now have different items in your 2nd script.

 

If you're facing problems after doing this, your version is quite old and I doubt what I said will work, I recommend you to use the 1.6c version and apply the changes which I mentioned in the previous posts. Here is the link for Euphy's Quest Shop 1.6c - https://github.com/rathena/rathena/blob/master/npc/custom/quests/quest_shop.txt

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

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

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.