Jump to content
  • 0

Euphy's dynamic shop


YuliChenz

Question


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

sorry, i know this topic is already exist, but no one reply on my post there, thats why i made this new topic, hoping there's some one can help me to solve this problem :(

 

im using euphy's dynamic shop script, i need like 15 quest shop npcs, but i have some problem here :

1. i cant make more than 5 npcs in 1 script

2. i made the second script, but it selling same items like first script does.

 

here is my script:

 

this is the first script, all went well except i cant make more than 5 npcs even after i added the dummy shop data

//===== rAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.6
//===== 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.
//============================================================
// Shop NPCs -- supplying no argument displays entire menu.
//    callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
ayo_in01,45,109,3    script    Upper Headgear    459,{ callfunc "qshop",1; }
ayo_in01,43,109,3    script    Middle headgear    88,{ callfunc "qshop",2; }
ayo_in01,41,109,3    script    Lower Headgear    99,{ callfunc "qshop",3; }
ayo_in01,39,109,3    script    Shoes    70,{ callfunc "qshop",4; }
ayo_in01,37,109,3    script    Accessories    97,{ callfunc "qshop",5; }


// 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)
    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],"Upper Headgears","Middle Headgears","Lower Headgears","Shoes","Accessories";

// -----------------------------------------------------------
//  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,29001,1,10000000,0,1059,300,7095,200,7157,100,7020,5,1030,5,2249,5,7109,5);
    Add(1,29002,1,10000000,0,968,50,7063,200,949,300,1124,10,1366,10,10018,5,4143,1);
    Add(1,29003,1,10000000,0,2256,5,5160,3,1466,5,1476,3,750,10,923,300,947,300);
    Add(1,29006,1,10000000,0,2508,20,1059,200,7166,150,7071,150,930,150);
    Add(1,29011,1,10000000,0,7510,20,5171,1,2357,1,2524,1,2421,1);

    Add(2,29007,1,10000000,0,7114,5,7157,100,7187,100,7568,100);
    Add(2,29008,1,10000000,0,2286,20,733,100,730,50,731,50,732,50);
    Add(2,29026,1,10000000,0,982,10,7263,100,2614,30);
    Add(2,29038,1,10000000,0,975,10,7263,100,2614,30);
    
    Add(3,29009,1,10000000,0,7211,5,7094,200,7095,200,7093,100);
    Add(3,29028,1,10000000,0,2254,5,2355,1,2420,1,2521,1,2116,1,5125,1,7063,200);
    Add(3,29029,1,10000000,0,749,100,995,100,12374,100,7066,200);
    
    Add(4,29030,1,10000000,0,7079,1,7063,300,4131,1,4381,30,4097,30,2421,1);
    
    Add(5,29031,1,10000000,0,7211,15,7300,15,4079,30);
    Add(5,29032,1,10000000,0,2618,15,7562,15,4027,30);
    Add(5,29033,1,10000000,0,7451,15,7754,15,4022,30);
    Add(5,29034,1,10000000,0,7562,15,7036,15,4412,30);
    Add(5,29035,1,10000000,0,7513,15,2700,15,4064,30);
    Add(5,29036,1,10000000,0,7566,15,1015,15,4293,30);
    Add(5,29037,1,10000000,0,2607,30,4195,20,4188,20);
    
    
    

// -----------------------------------------------------------

    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];
    }
    deletearray @i[0],getarraysize(@i);
    if (.Shops$[.@i] == "") {
        message strcharinfo(0),"An error has occurred.";
        end;
    }
    dispbottom "Select one item at a time.";
    callshop "qshop"+.@i,1;
    npcshopattach "qshop"+.@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:";
    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[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[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 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 {
    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 "qshop"+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    qshop    {
    deletearray @i[0],getarraysize(@i);
    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
        set @i[.@i],getarg(.@i);
    doevent "quest_shop::OnMenu";
    end;
}


// Dummy shop data -- copy as needed.
//============================================================
-    shop    qshop1    -1,909:-1
-    shop    qshop2    -1,909:-1
-    shop    qshop3    -1,909:-1
-    shop    qshop4    -1,909:-1
-    shop    qshop5    -1,909:-1

 

and here is the second script, even though the script on shop1 has diff item id with the first script, it still selling the same items like the first script

 

 //===== rAthena Script =======================================
//= Euphy's Quest Shop
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.6
//===== 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.
//============================================================
// Shop NPCs -- supplying no argument displays entire menu.
//    callfunc "vshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
ayo_in01,16,109,6    script    Flames    66,{ callfunc "vshop",1; }


// 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)
    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],"Fairy Wings","Flames","Odin Masks","Shinobi Headbands";

// -----------------------------------------------------------
//  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,29020,1,10000000,0,7122,500,7097,300,994,100,983,10);
    Add(1,29021,1,10000000,0,7122,500,7097,300,994,100,982,10);
    Add(1,29022,1,10000000,0,7122,500,7097,300,994,100,981,10);
    Add(1,29023,1,10000000,0,7122,500,7097,300,994,100,979,10);
    Add(1,29024,1,10000000,0,7122,500,7097,300,994,100,980,10);
    Add(1,29025,1,10000000,0,7122,500,7097,300,994,100,978,10);

// -----------------------------------------------------------

    freeloop(0);
    set .menu$,"";
    for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
        set .menu$, .menu$+.Shops$[.@i]+":";
        npcshopdelitem "vshop"+.@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 "vshop"+.@i,1;
    npcshopattach "vshop"+.@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:";
    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[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[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 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 {
    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 "vshop"+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    vshop    {
    deletearray @i[0],getarraysize(@i);
    for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
        set @i[.@i],getarg(.@i);
    doevent "quest_shop::OnMenu";
    end;
}


// Dummy shop data -- copy as needed.
//============================================================
-    shop    vshop1    -1,909:-1
-    shop    vshop2    -1,909:-1
-    shop    vshop3    -1,909:-1
-    shop    vshop4    -1,909:-1
-    shop    vshop5    -1,909:-1

i really need help here :(

Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

this is the first script, all went well except i cant make more than 5 npcs even after i added the dummy shop data

...but you didn't add more shop data.
-	shop	qshop6	-1,909:-1
-	shop	qshop7	-1,909:-1
-	shop	qshop8	-1,909:-1
-	shop	qshop9	-1,909:-1
-	shop	qshop10	-1,909:-1
And you'll need to add shop names to the .Shops$ array.
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  52
  • Reputation:   3
  • Joined:  01/05/12
  • Last Seen:  

what a awkward script...

 

-	shop	Swan#SWNP1	2000000,30255:2000000,30256:2000000,30257:2000000,30258:2000000,30259:2000000,30260:2000000,30261:2000000,30263:2000000,30264:2000000;
-	shop	Hyo#HYNP1	2000000,30277:2000000,30282:2000000,30288:2000000,30296:2000000,30355:2000000,30356:2000000,30357:2000000,30358:2000000,30359:2000000,30369:2000000,30381:2000000,30408:2000000,30437:2000000,30438:2000000,30439:2000000,30458:2000000;
quest_arena,143,106,4	script	Swans and Hyos	928,{
set .name$, "^3399FF[Quest NPC]^000000";
mes ""+.name$+"";
mes "Hello.";
mes "What are you searching for?";
switch(select("Swans:Hyos"))
{
	case 1: 	npcshopattach "Swan#SWNP1",1;		callshop "Swan#SWNP1",1;	end;
	case 2: 	npcshopattach "Hyo#HYNP1",1;		callshop "Hyo#HYNP1",1;		end;
}

OnBuyItem:
mes ""+.name$+"";
mes "^0000FF"+getitemname(@bought_nameid)+"^000000 costs:";
switch(@bought_nameid)
{
//Swan
	case 30255:
	case 30256:
	case 30257:
	case 30258:
	case 30259:
	case 30260:
	case 30261:
	case 30263:
	case 30264:
		set .@req1,7061;
		set .@amount1,150;
		set .@req2,7036;
		set .@amount2,5;
		set .@req3,674;
		set .@amount3,20;
		break;
//Hyo
	case 30277:
	case 30282:
	case 30288:
	case 30296:
	case 30355:
	case 30356:
	case 30357:
	case 30358:
	case 30359:
	case 30369:
	case 30381:
	case 30408:
	case 30437:
	case 30438:
	case 30439:
	case 30458:
		set .@req1,7061;
		set .@amount1,250;
		set .@req2,7036;
		set .@amount2,15;
		set .@req3,30380;
		set .@amount3,1;
		break;
//Standart
	default:
		set .@req1,7061;
		set .@amount1,200;
		set .@req2,7036;
		set .@amount2,15;
		set .@req3,674;
		set .@amount3,25;
		break;
}
	mes ""+.@amount1+"x "+getitemname(.@req1)+"";
	mes ""+.@amount2+"x "+getitemname(.@req2)+"";
	mes ""+.@amount3+"x "+getitemname(.@req3)+"";
	dispbottom ""+getitemname(@bought_nameid)+":";
	dispbottom ""+.@amount1+"x "+getitemname(.@req1)+"";
	dispbottom ""+.@amount2+"x "+getitemname(.@req2)+"";
	dispbottom ""+.@amount3+"x "+getitemname(.@req3)+"";
	if (getgmlevel()>=80) {
		dispbottom "[GM Bonus] You got "+@bought_nameid+"";
		getitem @bought_nameid, 1;
		}
	next;
switch(select("I have them:I'll search them"))
{
	case 1: break;
	case 2: mes ""+.name$+"";	mes "good luck!";	close;
}
mes ""+.name$+"";
if (countitem(.@req1) < .@amount1) {mes "You don't have "+.@amount1+"x "+getitemname(.@req1)+"";	close;	}
if (countitem(.@req2) < .@amount2) {mes "You don't have "+.@amount2+"x "+getitemname(.@req2)+"";	close;	}
if (countitem(.@req3) < .@amount3) {mes "You don't have "+.@amount3+"x "+getitemname(.@req3)+"";	close;	}
mes "are you sure you want to trade your items?";
switch(select("Yes:No"))
{
	case 1: break;
	case 2: mes ""+.name$+"";	mes "Well... think about it!";	close;
}
delitem .@req1, .@amount1;
delitem .@req2, .@amount2;
delitem .@req3, .@amount3;
getitem @bought_nameid, 1;
set #quests,#quests+1;
close;
}

 

 

i hope you understand what i mean :P

 

 

~Privat old script have fun and enjoy ^^

Edited by yakuu
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

Ahhh.. Got it, i didnt add shop name on .shops$ array.. Thanks a lot euphy :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  98
  • Topics Per Day:  0.02
  • Content Count:  1302
  • Reputation:   77
  • Joined:  12/04/12
  • Last Seen:  

sorry, i dont get it. can someone show me where to add? 

i have 2 npc, and its duplicate 1st npc item.

the 2nd npc now show the item. please show me where to change ? 

im not familiar with 1.6, i familiar with 1.4. help me..

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
Answer this question...

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