* Custom Quest Shop updated to v1.4b, which fixes an incorrect 'getiteminfo' call and standardizes script format.
* Switched 'atcommand' to 'unitskilluseid' in Cluckers custom script (bugreport:6852) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16858 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
9bde36efae
commit
1ae4a8945d
@ -3,7 +3,7 @@
|
||||
//===== By: ==================================================
|
||||
//= Keale
|
||||
//===== Current Version: =====================================
|
||||
//= 1.2
|
||||
//= 1.2a
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena SVN
|
||||
//===== Description: =========================================
|
||||
@ -15,6 +15,7 @@
|
||||
//= 1.0 First release.
|
||||
//= 1.1 Using 'switch rand' instead.
|
||||
//= 1.2 Cleaned and standardized. [Euphy]
|
||||
//= 1.2a Switched 'atcommand' to 'unitskilluseid'.
|
||||
//============================================================
|
||||
|
||||
prontera,156,219,4 script Cluckers 800,{
|
||||
@ -24,20 +25,20 @@ prontera,156,219,4 script Cluckers 800,{
|
||||
if (.startcluck) {
|
||||
specialeffect2 2;
|
||||
switch(rand(15)) {
|
||||
case 0: npctalk "CLUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break;
|
||||
case 0: npctalk "CLUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break;
|
||||
case 1: npctalk "Cluuuuuck!~"; break;
|
||||
case 2: atcommand "@nuke "+strcharinfo(0); break;
|
||||
case 2: unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; break;
|
||||
case 3: sc_start SC_Freeze,10000,0; break;
|
||||
case 4: npctalk "CLUUUUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break;
|
||||
case 4: npctalk "CLUUUUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break;
|
||||
case 5: sc_start SC_Sleep,10000,0; break;
|
||||
case 6: sc_start SC_Stone,10000,0; emotion 29; break;
|
||||
case 7: npctalk "CLUUUUUUCK!!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break;
|
||||
case 8: npctalk "Cluck! CLUUUCK!!"; atcommand "@nuke "+strcharinfo(0); emotion 23; break;
|
||||
case 7: npctalk "CLUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break;
|
||||
case 8: npctalk "Cluck! CLUUUCK!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break;
|
||||
case 9: sc_start SC_Stun,10000,0; break;
|
||||
case 10: sc_start SC_Sleep,10000,0; emotion 29; break;
|
||||
case 11: npctalk "Cluck! Cluck!"; break;
|
||||
case 12: sc_start SC_Stun,10000,0; break;
|
||||
case 13: atcommand "@nuke "+strcharinfo(0); break;
|
||||
case 13: unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; break;
|
||||
default:
|
||||
if (rand(50) < 4) {
|
||||
npctalk "WOOF!...........";
|
||||
@ -47,7 +48,7 @@ prontera,156,219,4 script Cluckers 800,{
|
||||
set .startcluck,0;
|
||||
} else {
|
||||
npctalk "Cluck! CLUUUCK!!";
|
||||
atcommand "@nuke "+strcharinfo(0);
|
||||
unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
//===== By: ==================================================
|
||||
//= Euphy
|
||||
//===== Current Version: =====================================
|
||||
//= 1.4a
|
||||
//= 1.4b
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena SVN r15340+
|
||||
//===== Description: =========================================
|
||||
@ -15,48 +15,60 @@
|
||||
prontera,164,203,6 script Quest Shop 998,{
|
||||
function Add; function Chk; function Slot; function A_An;
|
||||
|
||||
if(.Shops$ != "") set .@i,1;
|
||||
else {
|
||||
set .@menu$,"";
|
||||
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
|
||||
set .@menu$, .@menu$+.Shops$[.@i]+":";
|
||||
set .@i, select(.@menu$); }
|
||||
if (.Shops$ == "") set .@i, select(.menu$);
|
||||
else set .@i,1;
|
||||
dispbottom "Select one item at a time.";
|
||||
callshop "qshop"+.@i,1;
|
||||
npcshopattach "qshop"+.@i;
|
||||
end;
|
||||
|
||||
function Add {
|
||||
if (getitemname(getarg(1))=="null") {
|
||||
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
|
||||
if (getitemname(getarg(1)) == "null") {
|
||||
debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
|
||||
return;
|
||||
}
|
||||
for(set .@n,5; .@n<127; set .@n,.@n+2) {
|
||||
if (!getarg(.@n,0)) break;
|
||||
if (getitemname(getarg(.@n))=="null") {
|
||||
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
|
||||
if (getitemname(getarg(.@n)) == "null") {
|
||||
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped).";
|
||||
return;
|
||||
}
|
||||
}
|
||||
for(set .@i,2; .@i<.@n; set .@i,.@i+1)
|
||||
set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
|
||||
npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
|
||||
return; }
|
||||
return;
|
||||
}
|
||||
function Chk {
|
||||
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
|
||||
else return "^00FF00"; }
|
||||
if (getarg(0) < getarg(1)) {
|
||||
set @qe0,1;
|
||||
return "^FF0000";
|
||||
}
|
||||
else return "^00FF00";
|
||||
}
|
||||
function Slot {
|
||||
set .@s$,getitemname(getarg(0));
|
||||
switch(.ShowSlot){
|
||||
switch(.ShowSlot) {
|
||||
case 1: if (!getitemslots(getarg(0))) return .@s$;
|
||||
case 2: if (getiteminfo(getarg(0),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]";
|
||||
default: 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); }
|
||||
return "a "+getarg(0);
|
||||
}
|
||||
|
||||
OnBuyItem:
|
||||
set .@q[0],@bought_nameid;
|
||||
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
|
||||
if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
|
||||
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:";
|
||||
@ -65,39 +77,51 @@ OnBuyItem:
|
||||
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);
|
||||
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;
|
||||
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;
|
||||
case 2:
|
||||
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
|
||||
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
|
||||
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
|
||||
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
|
||||
set @qe6,1;
|
||||
break;
|
||||
case 3:
|
||||
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(3);
|
||||
set @qe4, getlook(4);
|
||||
set @qe5, getlook(5);
|
||||
set @qe6,1;
|
||||
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
|
||||
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
|
||||
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
|
||||
break;
|
||||
case 3:
|
||||
close;
|
||||
}
|
||||
}
|
||||
OnEnd:
|
||||
if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
|
||||
for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
|
||||
if (@qe6) {
|
||||
atcommand "@changelook 3 "+@qe3;
|
||||
atcommand "@changelook 1 "+@qe4;
|
||||
atcommand "@changelook 2 "+@qe5;
|
||||
}
|
||||
for(set .@i,0; .@i<7; set .@i,.@i+1)
|
||||
setd "@qe"+.@i,0;
|
||||
end;
|
||||
OnInit:
|
||||
freeloop(1);
|
||||
@ -137,8 +161,11 @@ OnInit:
|
||||
|
||||
// --------------------------------------------------
|
||||
freeloop(0);
|
||||
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
|
||||
set .menu$,"";
|
||||
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
|
||||
set .menu$, .menu$+.Shops$[.@i]+":";
|
||||
npcshopdelitem "qshop"+.@i,909;
|
||||
}
|
||||
end;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user