Jump to content

Recommended Posts

Posted

@Sharpienero:

Wow. I finally figured out what caused that error, and all it involved was changing the label name. ._.

With that said, I've released Euphy's Quest Shop v1.4a, which is more-or-less final since I've got all bugs fixed at long last. The other notable change is that the menu proceeds no matter if you've met quest requirements or not, allowing for better item previewing.

TO EVERYONE:

If you're using my WOE controller, is the maximum of 32 sessions enough? I just realized I could use another bit integer to increase the limit to 42, but it would be at the cost of an extra loop. If anybody actually needs this, tell me and I'll script it later.

Custom quest - tested and works wonderfully!

WoE Controller - 32 is enough!

Posted

i want to ask what is the problem in my WoE Controller

because

i set it

Session("Friday",20,21,9)

this means Friday 9:00pm to 10:00pm

but why the my woe

start

8:00pm to 9:00pm

Posted

sit about this script of yours.. when it comes to making shop 9 and up.. im having doubled item. i checked the script but no doubled items. here is my SS: post-4153-0-90820700-1340917055_thumb.jpg

Custom Currency Multi-Shop

setarray .Shop9[0],6124,5,7776,1,7621,1,12214,1,12622,10;

Don't use @loadnpc. You have to use @reloadscript.

Posted

sit about this script of yours.. when it comes to making shop 9 and up.. im having doubled item. i checked the script but no doubled items. here is my SS: post-4153-0-90820700-1340917055_thumb.jpg

Custom Currency Multi-Shop

setarray .Shop9[0],6124,5,7776,1,7621,1,12214,1,12622,10;

Don't use @loadnpc. You have to use @reloadscript.

i did not use loadnpc on the script

Posted

@emong:

You have to @reloadscript every time you make a change, and make sure this line is as-is:

set .@RunOnce,0;

If it's set to 1, your changes will not be saved (I included this so that your server wouldn't need to go through all the loops/checks if your WOE times are unchanging).


WOE Controller updated to v1.2! This lets you set and remove times in-game, so you will want to update to this. c:

Posted (edited)

@luphy

im sory if i got same problem with any member and you already fixed.

this my problem about your QuestShop

my Code

//===== 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,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$); }

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; }

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; } }

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; }

function Chk {

if (getarg(0)<getarg(1)) { set @qe0,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),11)>0) 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); }

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; }

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(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; } }

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;

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,30009,1,0,0,30001,50,0,0,0,0,0,0,0,0);

Add(1,30010,1,0,0,30001,50,0,0,0,0,0,0,0,0);

Add(1,30011,1,0,0,30001,50,0,0,0,0,0,0,0,0);

Add(1,30012,1,0,0,30001,50,0,0,0,0,0,0,0,0);

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);

for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)

npcshopdelitem "qshop"+.@i,909;

end;

}

// -------- Dummy data (duplicate as needed) --------

- shop qshop1 -1,909:-1

- shop qshop2 -1,909:-1

- shop qshop3 -1,909:-1

and this my SS server error.

33a41np.jpg

Edited by Yugosh
Posted

@Yugosh: You need to use rAthena for "freeloop" to work. You can delete the lines "freeloop(1)" and "freeloop(0)" if you want - it only adds support for large shops (causing the mapserver to detect an infinity loop), which "sleep" commands would also be a viable workaround for.

  • Upvote 1
Posted (edited)

@Yugosh: You need to use rAthena for "freeloop" to work. You can delete the lines "freeloop(1)" and "freeloop(0)" if you want - it only adds support for large shops (causing the mapserver to detect an infinity loop), which "sleep" commands would also be a viable workaround for.

so how to setup category in your script???

anw Thanks your script

Edited by Yugosh
Posted

Uh... you set up categories where I indicated it. Examples are already in the script.


Build Manager updated to v1.8! This is really only a size reduction, but it makes build-swapping less resource-intensive, too (not that it really was to begin with... but whatever~).

I've added a "latest updates" section in the first post to make spotting updates easier.


WOE Controller updated to v1.3! This update marks the complete removal of script-side session creation (the original function!) in favor of the much more user-friendly in-game interface I wrote earlier. To make up for it, I added nice effects. XD (other small changes were made as well)

Posted

@GM Incarnation: Same error as the person above you. As stated in the script header, you need to be using rAthena r15340+ for the "freeloop" command. To fix it, just delete "freeloop" both times it occurs. As for the duplicates, you have other shops named "qshop1", etc., for whatever reason...

Posted (edited)

You have a bug in your WoE Controller even the old version if i add up to 17 sessions (i will be adding a total of 32 sessions) and above then viewing WoE schedule wont show next or close button anymore so resuliting in stuck up mode and i must end task my RO so i can move again or use @refresh, @go, @warp commands

Edited by xx_paul_2013_xx
Posted

@xx_paul_2013_xx: Thanks for reporting that. Infinity loops will be the death of me... ._. Anyway, easy fix, done in v1.3a and v1.2a as well.

Posted

@zmref: I don't think there's a script command for that.

@7v7: It's a bit too specific for me to want to make... I'm currently writing something else though that you might like, but it's giving me sorta a hard time so wait a bit longer. :3

Posted (edited)

Euphy can i make a reuqest?please include the Novice Castle WoE for our latest woe_controller.

and also please include the Real-time updated time display of how much longer till WoE starts/end. thanks

woeinfo_00.png

Edited by Brynner

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...