Jump to content
  • 0

[ SOLVED ] H>Put announcement in Card Trader


Question

Posted (edited)

hello im having an error putting announcement in this card decomposer npc

 

Quote

//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1 
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================

//payon,140,206,5    script    Card Decomposer    4_LEVITATEMAN,{
prontera,188,163,4    script    Card Decomposer    4_LEVITATEMAN,{
    mes "[Card Decomposer]";
    mes "Hi, "+strcharinfo(0)+"!";
    mes "What can I do for you?";
    next;
    switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
    case 1:
        mes "[Card Decomposer]";
        mes "Do you find that you've got";
        mes "useless cards lying around?";
        mes "I'll be glad to take them off";
        mes "your hands!";
        next;
        mes "[Card Decomposer]";
        mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
        mes "card you give me";
//        mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
        mes "You can trade those points";
        mes "for items later on.";
        mes "How does that sound?";
        emotion ET_MONEY;
        close;
    case 2:
        mes "[Card Decomposer]";
        mes "Select the cards you";
        mes "want to trade in.";
        if (.Level) {
            mes " ";
            mes "They must be dropped";
            mes "by monsters of level";
            mes .Level+" and above.";
        }
        deletearray @sold_nameid[0],getarraysize(@sold_nameid);
        callshop "card_shop",2;
        npcshopattach "card_shop";
        end;
    case 3:
        mes "[Card Decomposer]";
        mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
        callshop "card_shop",1;
        npcshopattach "card_shop";
        end;
    case 4:
        mes "[Card Decomposer]";
        mes "*yawn*";
        mes "See you later!";
        emotion ET_SLEEPY;
        close;        
    }

OnSellItem:
    mes "Cards to sell:";
    mes "-----------------------------------";
    for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1)
        if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) {
            if (.Level) {
                query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
                if (.@lv < .Level) {
                    dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
                    continue;
                }
            }
            set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
            set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
            set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]);
            mes ((.@mvp)?"  ^FF0000":"  ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
            set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0]));
        }
    deletearray @sold_nameid[0], getarraysize(@sold_nameid);
    deletearray @sold_quantity[0], getarraysize(@sold_quantity);
    if (!.@card_id) {
        mes "  ^777777(none)^000000";
        emotion ET_SWEAT;
        close;
    }
    mes " ";
    mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
    next;
    if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
        mes "[Card Decomposer]";
        mes "Oh, okay...";
        emotion ET_SCRATCH;
        close;
    }
    for(set .@i,0; .@i<getarraysize(.@card_id); set .@i,.@i+1)
        delitem .@card_id[.@i],.@card_amt[.@i];
    setd .Points$, getd(.Points$)+.@card_total;
    mes "[Card Decomposer]";
    mes "All done!";
    emotion ET_DELIGHT;
    close;

OnBuyItem:
    for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
        for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
            if (@bought_nameid[.@i] == .Shop[.@j]) {
                set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
                break;
            }
    if (.@cost > getd(.Points$)) {
        mes "[Card Decomposer]";
        mes "You don't have enough Points.";
        emotion ET_HUK;
    }
    else {
        mes "Items purchased:";
        mes "-----------------------------------";
        for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
            getitem @bought_nameid[.@i], @bought_quantity[.@i];
            mes "  ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
        }
        mes " ";
        mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
        setd .Points$, getd(.Points$)-.@cost;
        emotion ET_MONEY;
        announce ""+strcharinfo(0)+" just exchanged trash cards into "+getitemname(.@k[0])+" x "+.@k[1]+" from Card Decomposer NPC!",0;
    }
    deletearray @bought_nameid[0], getarraysize(@bought_nameid);
    deletearray @bought_quantity[0], getarraysize(@bought_quantity);
    close;

OnInit:
    set .Level,0;           // Minimum monster level to trade corresponding cards.
    set .Points$,"#Card_Points";    // Variable to store points.
    setarray .Shop[0],        // Card Shop items: <ID>,<point cost>
      616,5,
      4140,20,
      4317,30,
      4068,50,
      4303,150;
    setarray .Points[0],1;    // Points per <normal card>,<MVP card>
//    set .MVP$,            // List of MVP cards.
//      "4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
//      "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";

    npcshopdelitem "card_shop",909;
    for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
        npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
    OnTimer0050:
        showscript "Card Decomposer", getnpcid(0);
        initnpctimer;
        end;
}
-    shop    card_shop    -1,909:-1

//bg_lobby,42,39,5    duplicate(Card Decomposer)    Card Decomposer#bgl    4_LEVITATEMAN
//prontera,188,163,4    duplicate(Card Decomposer)    Card Decomposer#prt1    4_LEVITATEMAN
//prt_fild08,180,353,4    duplicate(Card Decomposer)    Card Decomposer#prtf    4_LEVITATEMAN
 

 

12345.png

Edited by GM Winter

7 answers to this question

Recommended Posts

  • 0
Posted
26 minutes ago, danielps said:

-->> getitemname(.@k[0])

where did you create this array .@k ??

Create it first, otherwise you will always get null value sir

solved just change it to this 

        announce ""+strcharinfo(0)+" just exchanged trash cards into "+getitemname(@bought_nameid)+" from Card Decomposer NPC!",0;

  • 0
Posted

Note, your solution only displays the first item on the list. If they bought multiple cards, then it won't announce the rest.

Example: Player A bought Poring, Drops and Fabre Card - the only one that will be showed on announce is Poring Card

  • 0
Posted
54 minutes ago, Nyaniverse said:

Note, your solution only displays the first item on the list. If they bought multiple cards, then it won't announce the rest.

Example: Player A bought Poring, Drops and Fabre Card - the only one that will be showed on announce is Poring Card

ow i see i try it and your right do you have any idea how to fixed it?

  • 0
Posted (edited)
On 1/11/2024 at 8:43 AM, Sallycantdance said:

hello im having an error putting announcement in this card decomposer npc

 

 

12345.png

Hi, 

Just checking out if you are also receiving this DEBUG message

[Debug]: npc_scriptcont: Card Trader (sd->npc_id=111081623) is not 'Unknown NPC' (id=0).

Edited by rmon
  • 0
Posted
On 1/15/2025 at 4:30 AM, rmon said:

Hi, 

Just checking out if you are also receiving this DEBUG message

[Debug]: npc_scriptcont: Card Trader (sd->npc_id=111081623) is not 'Unknown NPC' (id=0).

i dont have any errors

  • 0
Posted
On 1/16/2025 at 1:38 PM, Sallycantdance said:

i dont have any errors

the moment you click on the sell button ? not getting the error ? 

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.

  • Recently Browsing   0 members

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