* Follow-up r17030: documented and added bMagicAtkEle to item_combo_db (bugreport:6943).
* Follow-up r17029: moved 'clearinventory' alias to atcommand_athena.conf. * Custom Quest Shop updated to v1.5, which replaces categories with shop IDs. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17031 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
7849887963
commit
b11c97a776
@ -55,6 +55,7 @@ aliases: {
|
|||||||
kill: ["die"]
|
kill: ["die"]
|
||||||
guildstorage: ["gstorage"]
|
guildstorage: ["gstorage"]
|
||||||
accinfo: ["accountinfo"]
|
accinfo: ["accountinfo"]
|
||||||
|
itemreset: ["clearinventory"]
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Commands help file */
|
/* Commands help file */
|
||||||
|
@ -49,14 +49,14 @@
|
|||||||
1776:18114,{ bonus bLongAtkRate,20; }
|
1776:18114,{ bonus bLongAtkRate,20; }
|
||||||
2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
|
2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
|
||||||
2001:2711,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
|
2001:2711,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
|
||||||
2007:2467:2859:15025,{ bonus2 bSubEle,Ele_Earth,-50; }
|
2007:2467:2859:15025,{ bonus2 bMagicAtkEle,Ele_Wind,40; bonus2 bMagicAtkEle,Ele_Earth,-30; bonus2 bSubEle,Ele_Earth,-50; }
|
||||||
2008:2468:2860:15026,{ bonus2 bSubEle,Ele_Wind,-50; }
|
2008:2468:2860:15026,{ bonus2 bMagicAtkEle,Ele_Water,40; bonus2 bMagicAtkEle,Ele_Wind,-30; bonus2 bSubEle,Ele_Wind,-50; }
|
||||||
2009:2469:2861:15027,{ bonus2 bSubEle,Ele_Water,-50; }
|
2009:2469:2861:15027,{ bonus2 bMagicAtkEle,Ele_Fire,40; bonus2 bMagicAtkEle,Ele_Water,-30; bonus2 bSubEle,Ele_Water,-50; }
|
||||||
2010:2470:2862:15028,{ bonus2 bSubEle,Ele_Fire,-50; }
|
2010:2470:2862:15028,{ bonus2 bMagicAtkEle,Ele_Earth,40; bonus2 bMagicAtkEle,Ele_Fire,-30; bonus2 bSubEle,Ele_Fire,-50; }
|
||||||
2011:2467:2859:15025,{ bonus2 bSubEle,Ele_Earth,-50; }
|
2011:2467:2859:15025,{ bonus2 bMagicAtkEle,Ele_Wind,60; bonus2 bMagicAtkEle,Ele_Earth,-60; bSubEle,Ele_Earth,-50; }
|
||||||
2012:2468:2860:15026,{ bonus2 bSubEle,Ele_Wind,-50; }
|
2012:2468:2860:15026,{ bonus2 bMagicAtkEle,Ele_Water,60; bonus2 bMagicAtkEle,Ele_Wind,-60; bonus2 bSubEle,Ele_Wind,-50; }
|
||||||
2013:2469:2861:15027,{ bonus2 bSubEle,Ele_Water,-50; }
|
2013:2469:2861:15027,{ bonus2 bMagicAtkEle,Ele_Fire,60; bonus2 bMagicAtkEle,Ele_Water,-60; bonus2 bSubEle,Ele_Water,-50; }
|
||||||
2014:2470:2862:15028,{ bonus2 bSubEle,Ele_Fire,-50; }
|
2014:2470:2862:15028,{ bonus2 bMagicAtkEle,Ele_Earth,60; bonus2 bMagicAtkEle,Ele_Fire,-60; bonus2 bSubEle,Ele_Fire,-50; }
|
||||||
2109:2717:2239,{ bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }
|
2109:2717:2239,{ bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }
|
||||||
2114:2353:5122,{ bonus bStr,2; bonus bDef,5; bonus bMdef,5; if(BaseClass==Job_Swordman) bonus bDef,6; }
|
2114:2353:5122,{ bonus bStr,2; bonus bDef,5; bonus bMdef,5; if(BaseClass==Job_Swordman) bonus bDef,6; }
|
||||||
2115:2353:5124,{ bonus bDef,2-getequiprefinerycnt(EQI_HAND_L)-getequiprefinerycnt(EQI_HEAD_TOP); bonus bMdef,5+getequiprefinerycnt(EQI_HAND_L)+getequiprefinerycnt(EQI_HEAD_TOP); }
|
2115:2353:5124,{ bonus bDef,2-getequiprefinerycnt(EQI_HAND_L)-getequiprefinerycnt(EQI_HEAD_TOP); bonus bMdef,5+getequiprefinerycnt(EQI_HAND_L)+getequiprefinerycnt(EQI_HEAD_TOP); }
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
//===== By: ==================================================
|
//===== By: ==================================================
|
||||||
//= rAthena Dev Team
|
//= rAthena Dev Team
|
||||||
//===== Current Version: =====================================
|
//===== Current Version: =====================================
|
||||||
//= 20121127
|
//= 20121219
|
||||||
//===== Description: =========================================
|
//===== Description: =========================================
|
||||||
//= List of available atcommands and their functions.
|
//= List of available atcommands and their functions.
|
||||||
//============================================================
|
//============================================================
|
||||||
@ -685,7 +685,7 @@ Deletes all items in storage (or guild storage).
|
|||||||
|
|
||||||
@clearcart
|
@clearcart
|
||||||
|
|
||||||
Deletes all items in cart, but it will not remove the cart.
|
Deletes all items in cart, but does not remove the cart.
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
//===== By: ==================================================
|
//===== By: ==================================================
|
||||||
//= rAthena Dev Team
|
//= rAthena Dev Team
|
||||||
//===== Current Version: =====================================
|
//===== Current Version: =====================================
|
||||||
//= 20110124
|
//= 20121219
|
||||||
//===== Description: =========================================
|
//===== Description: =========================================
|
||||||
//= List of script instructions used in item bonuses,
|
//= List of script instructions used in item bonuses,
|
||||||
//= mainly bonus/bonus2/bonus3/bonus4/bonus5 arguments.
|
//= mainly bonus/bonus2/bonus3/bonus4/bonus5 arguments.
|
||||||
@ -132,6 +132,9 @@ bonus2 bMagicAddEle,n,x; +x% magical damage against element n
|
|||||||
bonus2 bSubEle,n,x; x% Damage reduction against element n.
|
bonus2 bSubEle,n,x; x% Damage reduction against element n.
|
||||||
n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison,
|
n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison,
|
||||||
6=Holy, 7=Dark, 8=Spirit, 9=Undead
|
6=Holy, 7=Dark, 8=Spirit, 9=Undead
|
||||||
|
bonus2 bMagicAtkEle,n,x; Increases damage of n element magic by x%.
|
||||||
|
n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison,
|
||||||
|
6=Holy, 7=Dark, 8=Spirit, 9=Undead
|
||||||
bonus2 bAddDamageClass,n,x; +x% extra physical damage against monsters of class n
|
bonus2 bAddDamageClass,n,x; +x% extra physical damage against monsters of class n
|
||||||
Against players, n is their job id
|
Against players, n is their job id
|
||||||
bonus2 bAddMagicDamageClass,n,x; +x% extra magical damage against monsters of class n
|
bonus2 bAddMagicDamageClass,n,x; +x% extra magical damage against monsters of class n
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
//===== By: ==================================================
|
//===== By: ==================================================
|
||||||
//= Euphy
|
//= Euphy
|
||||||
//===== Current Version: =====================================
|
//===== Current Version: =====================================
|
||||||
//= 1.4c
|
//= 1.5
|
||||||
//===== Compatible With: =====================================
|
//===== Compatible With: =====================================
|
||||||
//= rAthena SVN r16862+
|
//= rAthena SVN r16862+
|
||||||
//===== Description: =========================================
|
//===== Description: =========================================
|
||||||
@ -11,17 +11,151 @@
|
|||||||
//= Includes support for multiple shops & cashpoints.
|
//= Includes support for multiple shops & cashpoints.
|
||||||
//= Item Preview script by ToastOfDoom.
|
//= Item Preview script by ToastOfDoom.
|
||||||
//============================================================
|
//============================================================
|
||||||
|
|
||||||
prontera,164,203,6 script Quest Shop 998,{
|
|
||||||
function Add; function Chk; function Slot; function A_An;
|
|
||||||
|
|
||||||
if (.Shops$ == "") set .@i, select(.menu$);
|
// Shop NPCs -- supplying no argument displays entire menu.
|
||||||
else set .@i,1;
|
// callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
|
||||||
|
//============================================================
|
||||||
|
prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; }
|
||||||
|
|
||||||
|
|
||||||
|
// Script Core
|
||||||
|
//============================================================
|
||||||
|
- script quest_shop -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)
|
||||||
|
|
||||||
|
// -----------------------------------------------------------
|
||||||
|
// 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],"Headgears","Weapons","Other";
|
||||||
|
|
||||||
|
// -----------------------------------------------------------
|
||||||
|
// 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,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
|
||||||
|
Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
|
||||||
|
Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
|
||||||
|
Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
|
||||||
|
|
||||||
|
Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
|
||||||
|
Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
|
||||||
|
|
||||||
|
Add(3,531,1,3,0,512,1,713,1);
|
||||||
|
Add(3,532,1,3,0,513,1,713,1);
|
||||||
|
Add(3,533,1,3,0,514,1,713,1);
|
||||||
|
Add(3,534,1,3,0,515,1,713,1);
|
||||||
|
|
||||||
|
// -----------------------------------------------------------
|
||||||
|
|
||||||
|
freeloop(0);
|
||||||
|
set .menu$,"";
|
||||||
|
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
|
||||||
|
set .menu$, .menu$+.Shops$[.@i]+":";
|
||||||
|
npcshopdelitem "qshop"+.@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];
|
||||||
|
}
|
||||||
|
if (.Shops$[.@i] == "") {
|
||||||
|
message strcharinfo(0),"An error has occurred.";
|
||||||
|
end;
|
||||||
|
}
|
||||||
dispbottom "Select one item at a time.";
|
dispbottom "Select one item at a time.";
|
||||||
callshop "qshop"+.@i,1;
|
callshop "qshop"+.@i,1;
|
||||||
npcshopattach "qshop"+.@i;
|
npcshopattach "qshop"+.@i;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
OnBuyItem:
|
||||||
|
set .@q[0],@bought_nameid[0];
|
||||||
|
copyarray .@q[1],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
|
||||||
|
if (!.@q[1]) {
|
||||||
|
message strcharinfo(0),"An error has occurred.";
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
mes "[Quest Shop]";
|
||||||
|
mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
|
||||||
|
mes "Requirements:";
|
||||||
|
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
|
||||||
|
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
|
||||||
|
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
|
||||||
|
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
|
||||||
|
next;
|
||||||
|
setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
|
||||||
|
if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0)
|
||||||
|
set .@preview,1;
|
||||||
|
addtimer 1000, strnpcinfo(0)+"::OnEnd";
|
||||||
|
while(1) {
|
||||||
|
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ 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[1])) {
|
||||||
|
mes "[Quest Shop]";
|
||||||
|
mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
if (.@q[2]) set Zeny, Zeny-.@q[2];
|
||||||
|
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
|
||||||
|
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
|
||||||
|
delitem .@q[.@i],.@q[.@i+1];
|
||||||
|
getitem .@q[0],.@q[1];
|
||||||
|
if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
|
||||||
|
specialeffect2 699;
|
||||||
|
close;
|
||||||
|
case 2:
|
||||||
|
setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1;
|
||||||
|
if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2];
|
||||||
|
if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2];
|
||||||
|
if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2];
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OnEnd:
|
||||||
|
if (@qe[6]) {
|
||||||
|
changelook LOOK_HEAD_BOTTOM, @qe[3];
|
||||||
|
changelook LOOK_HEAD_TOP, @qe[4];
|
||||||
|
changelook LOOK_HEAD_MID, @qe[5];
|
||||||
|
}
|
||||||
|
deletearray @qe[0],7;
|
||||||
|
end;
|
||||||
|
|
||||||
function Add {
|
function Add {
|
||||||
if (getitemname(getarg(1)) == "null") {
|
if (getitemname(getarg(1)) == "null") {
|
||||||
debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
|
debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
|
||||||
@ -39,13 +173,15 @@ function Add {
|
|||||||
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
|
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Chk {
|
function Chk {
|
||||||
if (getarg(0) < getarg(1)) {
|
if (getarg(0) < getarg(1)) {
|
||||||
set @qe0,1;
|
set @qe[0],1;
|
||||||
return "^FF0000";
|
return "^FF0000";
|
||||||
}
|
}
|
||||||
else return "^00FF00";
|
else return "^00FF00";
|
||||||
}
|
}
|
||||||
|
|
||||||
function Slot {
|
function Slot {
|
||||||
set .@s$,getitemname(getarg(0));
|
set .@s$,getitemname(getarg(0));
|
||||||
switch(.ShowSlot) {
|
switch(.ShowSlot) {
|
||||||
@ -54,6 +190,7 @@ function Slot {
|
|||||||
default: return .@s$;
|
default: return .@s$;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function A_An {
|
function A_An {
|
||||||
setarray .@A$[0],"a","e","i","o","u";
|
setarray .@A$[0],"a","e","i","o","u";
|
||||||
set .@B$, "_"+getarg(0);
|
set .@B$, "_"+getarg(0);
|
||||||
@ -61,115 +198,21 @@ function A_An {
|
|||||||
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
|
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
|
||||||
return "a "+getarg(0);
|
return "a "+getarg(0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
OnBuyItem:
|
function script qshop {
|
||||||
set .@q[0],@bought_nameid;
|
deletearray @i[0],getarraysize(@i);
|
||||||
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
|
for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
|
||||||
if (!.@q[1]) {
|
set @i[.@i],getarg(.@i);
|
||||||
message strcharinfo(0),"An error has occurred.";
|
doevent "quest_shop::OnMenu";
|
||||||
end;
|
|
||||||
}
|
|
||||||
mes "[Quest Shop]";
|
|
||||||
mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
|
|
||||||
mes "Requirements:";
|
|
||||||
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
|
|
||||||
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
|
|
||||||
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
|
|
||||||
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
|
|
||||||
next;
|
|
||||||
set @qe1, getiteminfo(.@q[0],5);
|
|
||||||
set @qe2, getiteminfo(.@q[0],11);
|
|
||||||
addtimer 1000, strnpcinfo(1)+"::OnEnd";
|
|
||||||
while(1) {
|
|
||||||
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2 > 0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
|
|
||||||
case 1:
|
|
||||||
if (@qe0) {
|
|
||||||
mes "[Quest Shop]";
|
|
||||||
mes "You're missing one or more quest requirements.";
|
|
||||||
close;
|
|
||||||
}
|
|
||||||
if (!checkweight(.@q[0],.@q[1])) {
|
|
||||||
mes "[Quest Shop]";
|
|
||||||
mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
|
|
||||||
close;
|
|
||||||
}
|
|
||||||
if (.@q[2]) set Zeny, Zeny-.@q[2];
|
|
||||||
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
|
|
||||||
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
|
|
||||||
delitem .@q[.@i],.@q[.@i+1];
|
|
||||||
getitem .@q[0],.@q[1];
|
|
||||||
if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
|
|
||||||
specialeffect2 699;
|
|
||||||
close;
|
|
||||||
case 2:
|
|
||||||
set @qe3, getlook(LOOK_HEAD_BOTTOM);
|
|
||||||
set @qe4, getlook(LOOK_HEAD_TOP);
|
|
||||||
set @qe5, getlook(LOOK_HEAD_MID);
|
|
||||||
set @qe6,1;
|
|
||||||
if (@qe1&1) changelook LOOK_HEAD_BOTTOM, @qe2;
|
|
||||||
if (@qe1&256) changelook LOOK_HEAD_TOP, @qe2;
|
|
||||||
if (@qe1&512) changelook LOOK_HEAD_MID, @qe2;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
close;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OnEnd:
|
|
||||||
if (@qe6) {
|
|
||||||
changelook LOOK_HEAD_BOTTOM, @qe3;
|
|
||||||
changelook LOOK_HEAD_TOP, @qe4;
|
|
||||||
changelook LOOK_HEAD_MID, @qe5;
|
|
||||||
}
|
|
||||||
for(set .@i,0; .@i<7; set .@i,.@i+1)
|
|
||||||
setd "@qe"+.@i,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],"Headgears","Weapons","Other";
|
|
||||||
// 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,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
|
|
||||||
Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
|
|
||||||
Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
|
|
||||||
Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
|
|
||||||
|
|
||||||
Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
|
|
||||||
Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
|
|
||||||
|
|
||||||
Add(3,531,1,3,0,512,1,713,1);
|
|
||||||
Add(3,532,1,3,0,513,1,713,1);
|
|
||||||
Add(3,533,1,3,0,514,1,713,1);
|
|
||||||
Add(3,534,1,3,0,515,1,713,1);
|
|
||||||
|
|
||||||
// --------------------------------------------------
|
|
||||||
freeloop(0);
|
|
||||||
set .menu$,"";
|
|
||||||
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
|
|
||||||
set .menu$, .menu$+.Shops$[.@i]+":";
|
|
||||||
npcshopdelitem "qshop"+.@i,909;
|
|
||||||
}
|
|
||||||
end;
|
end;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------- Dummy data (duplicate as needed) --------
|
|
||||||
|
// Dummy shop data -- copy as needed.
|
||||||
|
//============================================================
|
||||||
- shop qshop1 -1,909:-1
|
- shop qshop1 -1,909:-1
|
||||||
- shop qshop2 -1,909:-1
|
- shop qshop2 -1,909:-1
|
||||||
- shop qshop3 -1,909:-1
|
- shop qshop3 -1,909:-1
|
||||||
|
- shop qshop4 -1,909:-1
|
||||||
|
- shop qshop5 -1,909:-1
|
@ -46,7 +46,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
|
|||||||
}
|
}
|
||||||
mes "[Survival Instructor, Rescue]";
|
mes "[Survival Instructor, Rescue]";
|
||||||
mes "Huh?";
|
mes "Huh?";
|
||||||
mes "How did you come again and find me?";
|
mes "How did you find me?";
|
||||||
next;
|
next;
|
||||||
mes "[Survival Instructor, Rescue]";
|
mes "[Survival Instructor, Rescue]";
|
||||||
mes "Well, it's a passing mark that you recognize me... let me see.";
|
mes "Well, it's a passing mark that you recognize me... let me see.";
|
||||||
@ -300,7 +300,8 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
|
|||||||
next;
|
next;
|
||||||
mes "[Survival Instructor, Rescue]";
|
mes "[Survival Instructor, Rescue]";
|
||||||
mes "What's up?";
|
mes "What's up?";
|
||||||
mes "The monsters here are a little tough so be careful.";
|
mes "The monsters here are a";
|
||||||
|
mes "little tough so be careful.";
|
||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8819,7 +8819,6 @@ void atcommand_basecommands(void) {
|
|||||||
ACMD_DEF(item),
|
ACMD_DEF(item),
|
||||||
ACMD_DEF(item2),
|
ACMD_DEF(item2),
|
||||||
ACMD_DEF(itemreset),
|
ACMD_DEF(itemreset),
|
||||||
ACMD_DEF2("clearinventory", itemreset),
|
|
||||||
ACMD_DEF(clearstorage),
|
ACMD_DEF(clearstorage),
|
||||||
ACMD_DEF(cleargstorage),
|
ACMD_DEF(cleargstorage),
|
||||||
ACMD_DEF(clearcart),
|
ACMD_DEF(clearcart),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user