Jump to content

Ukiram

Members
  • Posts

    291
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Ukiram

  1. here's the scirpt

    Quote

    //===== rAthena Script =======================================
    //= Card Seller A-Z
    //===== Description: =========================================
    //= Sells all cards dropped by mobs, grouped alphabetically.
    //= MVP cards are excluded from the list.
    //=
    //= NOTE: Requires SQL item and mob databases.
    //===== Changelogs: ==========================================
    //= 1.0 First version [AnnieRuru]
    //= 1.1 Minor edits [Euphy]
    //= 1.2 Update for monster mode and enchants [Lemongrass]
    //============================================================

    prontera,155,177,5    script    Card Seller    100,{
        .@menu$ = getvariableofnpc( .alphabet_menu$, "card_seller_creation" );
        if (.@menu$ == "") {
            mes "[Card Seller]";
            mes "I am sorry, it seems like something went wrong.";
            mes "I cannot find any cards in our database at the moment.";
            mes "Please contact a game master.";
            close;
        }
        mes "[Card Seller]";
        mes "Welcome!";
        mes "I can sell you any normal monster card in the game. Would you like to have a look?";
        next;
        .@s = select(.@menu$) -1;
        close2;
        callshop "card_mob#"+ getvariableofnpc( .alphabet$[.@s], "card_seller_creation" ), 1;
        end;
    }

    -    script    card_seller_creation    -1,{
        end;
    OnInit:
        if (checkre(0)) {
            .@mob_db$  = "mob_db_re";
            .@item_db$ = "item_db_re";
        } else {
            .@mob_db$  = "mob_db";
            .@item_db$ = "item_db";
        }
        freeloop 1;    
        .@total = query_sql( "SELECT DISTINCT LEFT( `name_japanese`, 1 ) AS alphabets FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND `id` IN ( SELECT DISTINCT `dropcardid` FROM `"+ .@mob_db$ +"` WHERE ~(`MODE`) & " + MD_MVP + " ) ORDER BY alphabets;", .@alphabet$ );
        for ( .@i = 0; .@i < .@total; .@i++ ) {
            .@nb = query_sql( "SELECT `"+ .@item_db$ +"`.`id` FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND LEFT( `name_japanese`, 1 ) = '"+ .@alphabet$[.@i] +"' AND `id` IN ( SELECT DISTINCT `dropcardid` FROM `"+ .@mob_db$ +"` WHERE ~(`MODE`) & " + MD_MVP + " ) ORDER BY `name_japanese` LIMIT 128;", .@id );
            if (.@nb > 0) {
                .alphabet$[.@size_alphabet++] = .@alphabet$[.@i];
                .alphabet_menu$ = .alphabet_menu$ + .@alphabet$[.@i] +" Cards:";
                npcshopdelitem "card_mob#"+ .@alphabet$[.@i], 501;
                for ( .@j = 0; .@j < .@nb; .@j++ ) {
                    if (callfunc( "F_IsCharm", .@id[.@j] ) == true)// Skip enchants in case someone added them as card drop
                        continue;
                    npcshopadditem "card_mob#"+ .@alphabet$[.@i], .@id[.@j], 1000000;
                }
            }
        }
        freeloop 0;
        end;
    }
    -    shop    card_mob#A    -1,501:1000
    -    shop    card_mob#B    -1,501:1000
    -    shop    card_mob#C    -1,501:1000
    -    shop    card_mob#D    -1,501:1000
    -    shop    card_mob#E    -1,501:1000
    -    shop    card_mob#F    -1,501:1000
    -    shop    card_mob#G    -1,501:1000
    -    shop    card_mob#H    -1,501:1000
    -    shop    card_mob#I    -1,501:1000
    -    shop    card_mob#J    -1,501:1000
    -    shop    card_mob#K    -1,501:1000
    -    shop    card_mob#L    -1,501:1000
    -    shop    card_mob#M    -1,501:1000
    -    shop    card_mob#N    -1,501:1000
    -    shop    card_mob#O    -1,501:1000
    -    shop    card_mob#P    -1,501:1000
    -    shop    card_mob#Q    -1,501:1000
    -    shop    card_mob#R    -1,501:1000
    -    shop    card_mob#S    -1,501:1000
    -    shop    card_mob#T    -1,501:1000
    -    shop    card_mob#U    -1,501:1000
    -    shop    card_mob#V    -1,501:1000
    -    shop    card_mob#W    -1,501:1000
    -    shop    card_mob#X    -1,501:1000
    -    shop    card_mob#Y    -1,501:1000
    -    shop    card_mob#Z    -1,501:1000

     

  2. Hi, rAthena community. I need some help with this Invasion Script.

     

    I want:

    - Run Every 5 Hours

    - Normal Mobs: 5 Points per kill

    - Main MvP Mob: 100 Points per kill

    - MvP & Mob will be automatically death if didn't kill after 30 minutes.

    - Points is #INVASIONPOINTS

    - Shop is #INVASIONPOINTS

    - Spawnable at map Gonryun Town Only

    - The MVP Mob if killed by many all players who deal damage to MvP Invasion Monster will received points.

    Quote

    -    script    mvpinv    -1,{
    OnWhisperGlobal:
    if ( getgmlevel () < 99 ) end;

    mes "^FF0000~Hi GM " + strcharinfo(0) + "!~^000000";
    switch(select("Start Invasion?:Not today Fellas!")){
      case 1:
            mes "[Manager]";
            mes "^FF0000~Sure thing!~^000000";
            close2;
            goto L_inv;
      case 2:
            next;
            mes "[Manager]";
            mes "Bye!";
            close;
        }
                  
    OnInit:
    //setarray .Map$[0],"prontera","morocc","geffen","payon","alberta","aldebaran","xmas","comodo","yuno","amatsu","gonryun","umbala","louyang";
    //setarray .MVP[0],1511,1785,1630,2320,1039,1272,1719,1389,1115,1418,1252,1086,1885,1492,1734,1251,1688,2156,1373,1147,1087,1190,1038,1157,1159,1623,1583,1312,1685,1658;
    //setarray .Map$[0],"morocc";
    setarray .Map$[0],"gonryun";
    setarray .MVP[0],3000;
    setarray .CommonMobs[0],1188;
    end;


    OnMinute01:
    L_inv:
    killmonster .Map$[ .RandMap ],"All";
    if( .event_timer%8 ) end; //<--- im not sure of this part, first it kills the mvps that were not killed on the last event
    .event_timer++;//then if 8 hours transcurred after OnMinute00: the event will start ? because i see a end; there

    set .RandMap,rand( getarraysize( .Map$ ) );
    set .RandMVP,rand( getarraysize( .MVP ) );
    set .RandCommonMobs,rand(getarraysize ( .CommonMobs) );

    monster .Map$[ .RandMap ],0,0,"MVP Event",.CommonMobs[ .RandCommonMobs ],150,strnpcinfo(0)+"::OnKilledMob";
    //announce "-------------------------HEEEEEEEEEEEEEEEEEELP!!!!! A CITY IS UNDER ATTACK!!!-----------------------------------",0; 
    announce "------------------------Invasion MvP : 150 "+getmonsterinfo( .CommonMobs[ .RandCommonMobs ],0 )+" occurs in "+.Map$[ .RandMap ]+"------------------------ .",0;

        
    monster .Map$[ .RandMap ],0,0,"MVP Event",.MVP[ .RandMVP ],1,strnpcinfo(0)+"::OnKilledMonster";
        


    //monster .Map$[ .RandMap ],0,0,"MVP Event",.MVP[ .RandMVP ],5,strnpcinfo(0)+"::OnKilledMVP";

    announce "Invasion MvP : 1 "+getmonsterinfo( .MVP[ .RandMVP ],0 )+" occurs in "+.Map$[ .RandMap ]+" .",0;
    end;

    OnKilledMob:
    //announce "Invasion MvP : One of the MvPs have been hunted",0;
    set #inv_point, ##inv_point + 0;// +1 mvp point
    dispbottom "----------------------------------------------------------------------";
    dispbottom "You Have Successfully Killed the Invader";
    dispbottom "You Have Gained 20 Invasion Point";
    dispbottom "You now have a total of "+ #inv_point +" Invasion Point(s)";
    dispbottom "----------------------------------------------------------------------";
    end;

    OnKilledMonster:
    announce "Invasion MvP : One of the MvPs have been hunted",0;
    set #inv_point, ##inv_point + 0;// +1 mvp point
    dispbottom "----------------------------------------------------------------------";
    dispbottom "You Have Successfully Killed the MVP";
    dispbottom "You Have Gained 300 Invasion Point";
    dispbottom "You now have a total of "+##inv_point +" Invasion Point(s)";
    dispbottom "----------------------------------------------------------------------";
    end;
    }

    morocc    mapflag    monster_noteleport

    //============== Invasion Shop ===================================
    gonryun,157,114,4    script    Invasion Shop    809,{
    function Add; function Chk; function Slot; function A_An;

        if (.Shops$ == "") set .@i, select(.menu$);
        else set .@i,1;
        dispbottom "Select one item at a time.";
        callshop "invshop"+.@i,1;
        npcshopattach "invshop"+.@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 "invshop"+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),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);
    }

    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: ~ ^777777Cancel^000000")) {
            //"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2 > 0 && !@qe6)?" ~ Preview...":"")+":
            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)+" , performed a task/perform a donation",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:
        waitingroom "Invasion Shop",0;
        freeloop(1);
    // --------------------- Config ---------------------
    // Custom points, if needed: "<variable>","<name to display>"
        setarray .Points$[0],"#inv_point","Invation Points";

        set .Announce,0;    // 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,1;    // 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],"Invasion Shop";
        // 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,5151,1,30000,30000,0,0);        //NHP
        //Add(1,33032,1,25000,25000,0,0);        //cyc
        Add(1,4359,1,30000,30000,0,0);        // SINXC
        Add(1,4357,1,15000,15000,0,0);        // LKC
        Add(1,4361,1,29000,29000,0,0);        // WSC
        Add(1,4363,1,8000,8000,0,0);        // HPC
        Add(1,4365,1,4000,4000,0,0);        // HWC
        Add(1,4367,1,18000,18000,0,0);        // SnipC
        Add(1,4399,1,10000,10000,0,0);        // ThanaC

        
    // --------------------------------------------------
        freeloop(0);
        set .menu$,"";
        for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
            set .menu$, .menu$+.Shops$[.@i]+":";
            npcshopdelitem "invshop"+.@i,909;
        }
        end;
    }

    // -------- Dummy data (duplicate as needed) --------
    -    shop    invshop1    -1,909:-1

     

  3. 3 hours ago, Yona said:

    1. How to change npc name?

    2. How to change message when you login server?

    3. How to change server name?

    (Help)

    wqw.jpg

    wewew.jpg

    2019-12-15 (1).jpg

    Change your Client Exe Server Name to NEMO Patcher download here at rAthena just use search button

    Change your Shop Name you will see it in your script next to the coordination of the script

    Server Message change it to inside your trunk just look for it conf folder.

  4. Hi, my Arch Angel Costume is a Costume Robe but it seems that the costume is not showing. then I tried it to change to Costume Lower and it successfully shows? Is there wrong with the Costume Robe? Can anyone help me with this?

    image.png.90d8296f2607253310db389d40f3f3f2.pngimage.png.42d99060ceea12b1ee2a0b8f61b91468.png

  5. 10 minutes ago, Mabuhay said:

     

    Can't you read the script you made posted? You are offering service (in your signature) yet you still dont know how to work with variables?

    
    Variables
    ---------
    
    The meat of every programming language is variables - places where you store
    data.
    
    In the rAthena scripting language, variable names are not case sensitive.
    
    Variables are divided into and uniquely identified by the combination of:
    prefix  - determines the scope and extent (or lifetime) of the variable
    name    - an identifier consisting of '_' and alphanumeric characters
    postfix - determines the type of the variable: integer or string
    
    Scope can be:
    global    - global to all servers
    local     - local to the server
    account   - attached to the account of the character identified by RID
    character - attached to the character identified by RID
    npc       - attached to the NPC
    scope     - attached to the scope of the instance
    
    Extent can be:
    permanent - They still exist when the server resets.
    temporary - They cease to exist when the server resets.
    
    Prefix: scope and extent
    nothing  - A permanent variable attached to the character, the default variable
               type. They are stored by char-server in the `char_reg_num` and
               `char_reg_str`.
    "@"      - A temporary variable attached to the character.
               SVN versions before 2094 revision and RC5 version will also treat
               'l' as a temporary variable prefix, so beware of having variable
               names starting with 'l' if you want full backward compatibility.
    "$"      - A global permanent variable.
               They are stored by map-server in database table `mapreg`.
    "$@"     - A global temporary variable.
               This is important for scripts which are called with no RID
               attached, that is, not triggered by a specific character object.
    "."      - A NPC variable.
               They exist in the NPC and disappear when the server restarts or the
               NPC is reloaded. Can be accessed from inside the NPC or by calling
               'getvariableofnpc'. Function objects can also have .variables which
               are accessible from inside the function, however 'getvariableofnpc'
               does NOT work on function objects.
    ".@"     - A scope variable.
               They are unique to the instance and scope. Each instance has its
               own scope that ends when the script ends. Calling a function with
               callsub/callfunc starts a new scope, returning from the function
               ends it. When a scope ends, its variables are converted to values
               ('return .@var;' returns a value, not a reference).
    "'"      - An instance variable.
               These are used with the instancing system and are unique to each
               instance type. Can be accessed from inside the instance or by calling
               'getvariableofinstance'.
    "#"      - A permanent local account variable.
               They are stored by char-server in the `acc_reg_num` table and
               `acc_reg_str`.
    "##"     - A permanent global account variable stored by the login server.
               They are stored in the `global_acc_reg_num` table and
    		   `global_acc_reg_str`.
               The only difference you will note from normal # variables is when
               you have multiple char-servers connected to the same login server.
               The # variables are unique to each char-server, while the ## variables
               are shared by all these char-servers.
    
    Postfix: integer or string
    nothing - integer variable, can store positive and negative numbers, but only
              whole numbers (so don't expect to do any fractional math)
    '$'     - string variable, can store text
    
    Examples:
      name  - permanent character integer variable
      name$ - permanent character string variable
     @name  - temporary character integer variable
     @name$ - temporary character string variable
     $name  - permanent global integer variable
     $name$ - permanent global string variable
    $@name  - temporary global integer variable
    $@name$ - temporary global string variable
     .name  - NPC integer variable
     .name$ - NPC string variable
    .@name  - scope integer variable
    .@name$ - scope string variable
     'name  - instance integer variable
     'name$ - instance string variable
     #name  - permanent local account integer variable
     #name$ - permanent local account string variable
    ##name  - permanent global account integer variable
    ##name$ - permanent global account string variable
    
    If a variable was never set, it is considered to equal zero for integer
    variables or an empty string ("", nothing between the quotes) for string
    variables. Once you set it to that, the variable is as good as forgotten
    forever, and no trace remains of it even if it was stored with character or
    account data.

     

     

    
    *getitembound <item id>,<amount>,<bound type>{,<account ID>};
    *getitembound "<item name>",<amount>,<bound type>{,<account ID>};
    
    This command behaves identically to 'getitem', but the items created will be
    bound to the target character as specified by the bound type. All items created
    in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in
    some cases cannot be traded or stored.
    
    Valid bound types are:
     Bound_Account : Account Bound item
     Bound_Guild   : Guild Bound item
     Bound_Party   : Party Bound item
     Bound_Char    : Character Bound item
    
    ---------------------------------------
    
    *getitembound2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>{,<account ID>};
    *getitembound2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>{,<account ID>};
    *getitembound3 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
    *getitembound3 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>{,<account ID>};
    
    This command behaves identically to 'getitem2', but the items created will be
    bound to the target character as specified by the bound type. All items created
    in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in
    some cases cannot be traded or stored.
    
    For a list of bound types see 'getitembound'.
    
    'getitembound3' is advance version of 'getitembound2' that also use Item Random Option as additional values.
    <RandomIDArray>    : Array variable of ID for item random option, see db/[pre-]re/item_randomopt_db.txt
    <RandomValueArray> : Array variable of item random option's value.
    <RandomParamArray> : Array variable of item random option's param.
    
    Example to get Crimson Weapon with Ghost property:
    	// +9 Crimson Dagger [2]
    	setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS;
    	setarray .@OptVal[0],0;
    	setarray .@OptParam[0],0;
    	getitembound3 28705,1,1,9,0,0,0,0,0,BOUND_CHAR,.@OptID,.@OptVal,.@OptParam;

     

    Or download this in-case you didnt see this in your server files :

    script_commands.txt 372.16 kB · 0 downloads

      Reveal hidden contents
    
    
    //===== rAthena Documentation================================
    //= rAthena Script Commands
    //===== By:==================================================
    //= rAthena Dev Team
    //===== Last Updated:========================================
    //= 20180831
    //===== Description:=========================================
    //= A reference manual for the rAthena scripting language.
    //= Commands are sorted depending on their functionality.
    //===========================================================
    
    This document is a reference manual for all the scripting commands and functions
    available in rAthena. It is not a simple tutorial. When people tell you to
    "Read The F***ing Manual", they mean this.
    
    This is not a place to teach you basic programming. This document will not teach
    you basic programming by itself. It's more of a reference for those who have at
    least a vague idea of what they want to do and want to know what tools they have
    available to do it. We've tried to keep it as simple as possible, but if you
    don't understand it, getting a clear book on programming in general will help
    better than yelling around the forum for help.
    
    A little learning never caused anyone's head to explode.

     

     

    I already fixed sorry. ? 

  6. Hi, anyone can help me with the script? It's a Freebies NPC and Account Bounded, but can't get the item.

    PER ACCOUNT

    AND IF YOU GET IT, ACCOUNT BOUNDED

    Here's the script

    force_3-1,169,180,4	script	Freebies NPC	123,{
        query_sql ("SELECT `last_ip` FROM `login` WHERE `account_id`= '" + getcharid(3) + "'", .@lip$);
        mes "[Hello]";
        mes "[I can give you a free gift based on your future job.]";
        mes "[Please choose the correct item for the future job]";
        next;
        if(!#Freeitems && ( getd("$" + .@lip$ + "_ASD") == 0 )) {
            mes "Select one:";
            next;
            switch(select("Swordsman:Magician:Archer:Acolyte:Merchant:Thief")) {
                case 1:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1108,1,7,0,0,0,0,0,0;
                    break;
    
                case 2:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1602,1,7,0,0,0,0,0,0;
                    break;
    
                case 3:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1702,1,7,0,0,0,0,0,0;
                    break;
                    
                case 4:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1550,1,7,0,0,0,0,0,0;
    		getitem2 1505,1,7,0,0,0,0,0,0;
                    break;
                
                case 5:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1302,1,7,0,0,0,0,0,0;
                    break;
                
                case 6:
                    getitem2 3670,1,1,0,0,0,0,0,0;
                    getitem2 3671,1,1,0,0,0,0,0,0;
                    getitem2 3672,1,1,0,0,0,0,0,0;
                    getitem2 3673,1,1,0,0,0,0,0,0;
                    getitem2 12263,5,1,0,0,0,0,0,0;
    		getitem2 1209,1,7,0,0,0,0,0,0;
                    break;
                    
                }
                set #Freebie, 1;
                setd "$" + .@lip$ + "_ASD", getd("$" + .@lip$ + "_ASD") + 1;
                close;
        }
        OnInit:
        waitingroom "Get your freebies here!",0;
        end;
    }

     

  7. 8 minutes ago, Humble_Bee said:

    I've been having trouble finding the formulas for the core stats (str, dex, luk….). Can someone tell me where they are? I'd like to adjust a few (like lowering the hit bonus from luk and etc). Thanks!

    find db/pre-re/item_db.txt

  8. Hi, once again. I would like to thank you all for helping me. 

    I'm back and asking again for a help.

     

    Here's my NPC scripts, and it's totally working, I would like to add a Requirements to use the NPC.

    Here's i want to requests.

    I would like to add a Payment per use of NPC but free reset. It only accept payments if you want to costume to another job.

    and Only Transcended Classes can used the NPC and requirements based level is 255.

    Quote

    //####################################################
    //#                              ™ #
    //#   ####### ######  ###   ### ###   ### ###   ###  #
    //#   ###    ###  ###  ### ###   ### ###   ### ###   #
    //#   #####  ###  ###   ####      ####      #####    #
    //#   ##     ###  ###  ### ###   ### ###     ###     #
    //#   ##      ######  ###   ### ###   ###   ###      #
    //#                                                  #
    //####################################################
    //v1.0: Allows changing suits to 3rd classes;        #
    //v1.1: Added Xmas and Summer suits;                 #
    //v1.2: Added support to baby 3rd class suits.       #
    //####################################################
    1@ghvy,136,52,4    script    Job Costumes    485,{

    // Settings
        set .mode, 1; // Set it as following: 0 - Transcendent 2nd to 3rd class suits ; 1 - Transcendent 2nd to normal and baby 3rd class, also 3rd to baby 3rd; 2 - Transcendent 2nd to 3rd class suits and xmas, summer suits; 3 - 2nd to normal and baby 3rd class, also normal 3rd to baby 3rd plus xmas,summer.

        if (.mode == 0) goto normal;
        if (.mode == 1) goto babies;
        if (.mode == 2) goto misc;
        if (.mode == 3) goto babymisc;

    normal:
        mes "Job Costumes NPC";
        mes "So, wanna change your appearance?";
        menu "Change to 3rd class suit",thirdclass,"Reset appearance",reset;

    babies:
        mes "Job Costumes NPC";
        mes "So, wanna change your appearance?";
        menu "Change to 3rd class suit",thirdclass,"Change to 3rd class baby suit",babythirdclass,"Reset appearance",reset;

    misc:
        mes "Job Costumes NPC";
        mes "So, wanna change your appearance?";
        menu "Change to class suit",thirdclass,"Extra suits",miscsuits,"Reset appearance",reset;

    babymisc:
        mes "Job Costumes NPC";
        mes "So, wanna change your appearance?";
        menu "Change to class suit",thirdclass,"Change to 3rd class baby suit",babythirdclass,"Extra suits",miscsuits,"Reset appearance",reset;

    thirdclass:
        if(class == Job_Lord_Knight) { changebase 4060; close; end; }
        if(class == Job_Assassin_Cross) { changebase 4065; close; end; }
        if(class == Job_Paladin) { changebase 4073; close; end; }
        if(class == Job_Whitesmith) { changebase 4064; close; end; }
        if(class == Job_Creator) { changebase 4078; close; end; }
        if(class == Job_Stalker) { changebase 4079; close; end; }
        if(class == Job_Professor) { changebase 4074; close; end; }
        if(class == Job_Gypsy) { changebase 4076; close; end; }
        if(class == Job_Champion) { changebase 4077; close; end; }
        if(class == Job_Sniper) { changebase 4062; close; end; }
        if(class == Job_Clown) { changebase 4075; close; end; }
        if(class == Job_High_Wizard) { changebase 4061; close; end; }
        if(class == Job_High_Priest) { changebase 4063; close; end; }
        else { next; mes "Job Costumes NPC"; mes "I'm sorry, but your class is not supported."; close; end; }

    babythirdclass:
        if(class == Job_Lord_Knight) { changebase 4096; close; end; }
        if(class == Job_Assassin_Cross) { changebase 4101; close; end; }
        if(class == Job_Paladin) { changebase 4102; close; end; }
        if(class == Job_Whitesmith) { changebase 4100; close; end; }
        if(class == Job_Creator) { changebase 4107; close; end; }
        if(class == Job_Stalker) { changebase 4108; close; end; }
        if(class == Job_Professor) { changebase 4103; close; end; }
        if(class == Job_Gypsy) { changebase 4105; close; end; }
        if(class == Job_Champion) { changebase 4106; close; end; }
        if(class == Job_Sniper) { changebase 4098; close; end; }
        if(class == Job_Clown) { changebase 4104; close; end; }
        if(class == Job_High_Wizard) { changebase 4097; close; end; }
        if(class == Job_High_Priest) { changebase 4099; close; end; }
        if(class == Job_Rune_Knight_T) { changebase 4096; close; end; }
        if(class == Job_Guillotine_Cross_T) { changebase 4101; close; end; }
        if(class == Job_Royal_Guard_T) { changebase 4102; close; end; }
        if(class == Job_Mechanic_T) { changebase 4100; close; end; }
        if(class == Job_Genetic_T) { changebase 4107; close; end; }
        if(class == Job_Shadow_Chaser_T) { changebase 4108; close; end; }
        if(class == Job_Sorcerer_T) { changebase 4103; close; end; }
        if(class == Job_Wanderer_T) { changebase 4105; close; end; }
        if(class == Job_Sura_T) { changebase 4106; close; end; }
        if(class == Job_Ranger_T) { changebase 4098; close; end; }
        if(class == Job_Minstrel_T) { changebase 4104; close; end; }
        if(class == Job_Warlock_T) { changebase 4097; close; end; }
        if(class == Job_Arch_Bishop_T) { changebase 4099; close; end; }
        else { next; mes "Job Costumes NPC"; mes "I'm sorry, but your class is not supported."; close; end; }

    reset:
        changebase Class;
        close;
        end;

    miscsuits:
        next;
        mes "Job Costumes NPC";
        mes "Which of the suits would you like to use?";
        menu "Xmas suit",xmas,"Summer suit",summer;

    xmas:
        changebase 26;
        close;
        end;

    summer:
        changebase 27;
        close;
        end;

    }

     

  9. Hi rAthena Devs!
    I'm back again, I actually looking for a ~> VALKYRIE CRAFTER <~ i already have the script but have an error. Can anyone help me with this?

    Here's the script.

    1@ghvy,150,96,4	script	Valkyrie Crafter	801,{
    	
    	mes "[Valkyrie Crafter]";
    	mes "Oh! A visitor. That's do rare!";
    	mes "Welcome to the portal to God's Realm.";
    	mes "I'm the guardian of this place.";
    	next;
    	mes "[Valkyrie Crafter]";
    	mes "What are you seeking stranger? The words of God himself?";
    	mes "[Valkyrie Crafter]";
    	mes "Or are you interested in my special crafting abilities?";
    	next;
    		switch(select("Yeah, I'd like to hear God' voice:So, what can you craft exactly?:That's very interesting but i have to go.")) 
    	{
    	case 1:	
    		mes "[Valkyrie Crafter]";
    		mes "oh, so you want hear God's voice.";
    		mes "Well, only angels can hear him. Are you an angel?";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes "Mmm, no. You don't seem to propagate any Holy Waves of the Angels.";
    		mes "I'm sorry but you won't be able to hear him today.";
    		mes "Maybe if you do become an anel one day.";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes "In this case, I wish you a good day traveler!";
    		close;
    	case 2:
    		mes "[Valkyrie Crafter]";
    		mes "I'm the finest crafter of heaven.";
    		mes "I can make wings that are completely out of this world.";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes "My finest work consist of crafting elemental wings from normal wings.";
    		mes "It's like refining existing wings if you prefer.";
    		mes "You simply need to hand me the elements that i need to do them.";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes"Oh! There is however a litte special request I would have to ask you before starting doing any crafting.";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes	"i'm a big lover of rare precious stones. They're a real source of inspiration to me !";
    		mes "So, for any wings you want me to craft, could you please bring me at least 10 of each of those ores:";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes "10x Ruby";
    		mes "10x Sapphire";
    		mes "10x Topaz";
    		mes "10x Opal";
    		mes "10x Emerald";
    		mes "10x Amethyst";
    		mes "10x Aquamarine";
    		next;
    		mes "[Valkyrie Crafter]";
    		mes "So what wings would you like me to craft for you ?";
    		next;
    		
    		Main:
    			switch(select("Artic Wings:Demon Wings:Phoenix Wings:Gargoyle Wings:Torn Wings:Nothing for now, tahnk you."))
    		{
    		case 1:
    			mes "[Valkyrie Crafter]";
    			mes "Those water element wings are said to provide extra knowledge about the world we live in.";
    			mes "Ok, I will need the following:";
    			next;
    			mes "[Valkyrie Crafter]";
    			mes "1x Angel Wings";
    			mes "25x Mystic Frozen";
    			mes "10x Frozen Rose";
    			mes "50x Ice Cubic";
    			mes "10x gold for the crafting fees";
    			next;
    			mes "[Valkyrie Crafter]";
    			mes "So, do you want me to make them now ?";
    				switch(select("Sure, I got all the items!:Mm, can I choose another wings?:No, I don't have all items yet..."))
    			{
    			case 1:
    				{
    					if(countitem(723) < 10 || countitem(726) < 10 || countitem(728) < 10 || countitem(727) < 10 || countitem(721) < 10 || countitem(719) < 10 || countitem(720) < 10)
    					{
    						mes "[Valkyrie Crafter]";
    						mes "Oh! ssems that you didn't do the most important task: that's to bring to me all the precious stones i requested.";
    						mes "They are my source of inspiration and motivation. Without them, i can't do your wings.";
    						next;
    						mes "[Valkyrie Crafter]";
    						mes "Come back when you have them please!";
    						close;
    					}
    					if(countitem(8002) < 1 || (countitem(995) < 25 || countitem(749) < 10 || countitem(7066) < 50 || countitem(969) < 10)
    					{
    						mes "[Valkyrie Crafter]";
    						mes "Mm, I'm sorry. It seems that some items are missing.";
    						mes "Please, feel free to come again when you have everything.";
    						close;
    					}
    					if(countitem(8002) >= 1 || (countitem(995) >= 25 || countitem(749) >= 10 || countitem(7066) >= 50 || countitem(969) >= 10 || countitem(723) >= 10 || countitem(726) >= 10 || countitem(728) >= 10 && countitem(727) >= 10 || countitem(721) >= 10 || countitem(719) >= 10 || countitem(720) >= 10)
    					{
    						delitem 8002,1;
    						delitem 995,25;
    						delitem 749,10;
    						delitem 7066,50;
    						delitem 969,10;
    						delitem 723,10;
    						delitem 726,10;
    						delitem 728,10;
    						delitem 727,10;
    						delitem 721,10;
    						delitem 719,10;
    						delitem 720,10;
    						mes "[Valkyrie Crafter]";
    						mes "great! I'll start making them right now. Ok, just wait a few minutes please.";
    						next;
    						mes "[Valkyrie Crafter]";
    						mes "*Waiting impatiently for the wings*";
    						next;
    						mes "[Valkyrie Crafter]";
    						mes "( 15 minutes later )";
    						next;
    						mes "[Valkyrie Crafter]";
    						mes "Holy God! That's some great work i just did! Here yo ugo young traveler.";
    						mes "Those are you Arctic Wings.";
    						next;
    						getitem 8005,1;
    						mes "[Valkyrie Crafter]";
    						mes "Bye and don't hestate to come back! Enjoy your new wings ^^";
    						close;
    					}
    				}
    				break;	
    			case 2:
    				mes "[Valkyrie Crafter]";
    				mes "So, do you want me to make them now ?";
    				goto Main;
    			case 3:
    				mes "[Valkyrie Crafter]";
    				mes "Very well. Good bye traveler and please come back again!";
    				close;
    			}
    			
    		case 2:
    			mes "[Valkyrie Crafter]";
    			mes "WoW, I see that you show interest in the Demons Wings. Be careful with its power!";
    			mes "Well, I only need those to make them:";
    			next;
    			mes "[Valkyrie Crafter]";
    			mes "1x Devil Wings";
    			mes "100x Dragon Scale";
    			mes "100x Evil Horn";
    			mes "50x Tiger's Footskin";
    			mes "10x gold for the crafting fees";
    			next;
    			mes "So, do you want me to make them now ?";
    				switch(select("Sure, I got all the items!:Mm, can I choose another wings?:No, I don't have all items yet..."))
    			{
    			case 1:
    				if(countitem(723) < 10 && countitem(726) < 10 && countitem(728) < 10 && countitem(727) < 10 && countitem(721) < 10 && countitem(719) < 10 && countitem(720) < 10)
    				{
    					mes "[Valkyrie Crafter]";
    					mes "Oh! ssems that you didn't do the most important task: that's to bring to me all the precious stones i requested.";
    					mes "They are my source of inspiration and motivation. Without them, i can't do your wings."
    					next;
    					mes "[Valkyrie Crafter]";
    					mes "Come back when you have them please!";
    					close;
    				}
    				if(countitem(8001) < 1 && (countitem(1036) < 100 && countitem(923) < 100 && countitem(1030) < 50 && countitem(969) < 10)
    				{
    					mes "Mm, I'm sorry. It seems that some items are missing.";
    					mes "Please, feel free to come again when you have everything.";
    					close;
    				}
    				if(countitem(8001) >= 1 && (countitem(1036) >= 100 && countitem(923) >= 100 && countitem(1030) >= 50 && countitem(969) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(727) >= 10 && countitem(721) >= 10 && countitem(719) >= 10 && countitem(720) >= 10)
    				{
    					delitem 8001,1;
    					delitem 1036,100;
    					delitem 923,100;
    					delitem 1030,50;
    					delitem 969,10;
    					delitem 723,10;
    					delitem 726,10;
    					delitem 728,10;
    					delitem 727,10;
    					delitem 721,10;
    					delitem 719,10;
    					delitem 720,10;
    					mes "[Valkyrie Crafter]";
    					mes "great! I'll start making them right now. Ok, just wait a few minutes please.";
    					next;
    					mes "[Valkyrie Crafter]";
    					mes "*Waiting impatiently for the wings*";
    					next;
    					mes "[Valkyrie Crafter]";
    					mes "( 15 minutes later )";
    					next;
    					mes "[Valkyrie Crafter]";
    					mes "Holy God! That's some great work i just did! Here yo ugo young traveler.";
    					mes "Those are you Arctic Wings.";
    					next;
    					getitem 8006,1;
    					mes "[Valkyrie Crafter]";
    					mes "Bye and don't hestate to come back! Enjoy your new wings ^^";
    					close;
    				}
    				break;
    			case 2:
    				mes "[Valkyrie Crafter]";
    				mes "So, do you want me to make them now ?";
    				goto Main;
    			case 3:
    				mes "[Valkyrie Crafter]";
    				mes "Very well. Good bye traveler and please come back again!";
    				close;
    			}
    		case 3:
    		goto Main;
    		case 4:
    		goto Main;
    		case 5:
    		goto Main;
    		case 6:
    		close;
    		}
    	case 3:
    	mes "[Valkyrie Crafter]";
    	mes "Very well. Good bye traveler and please come back again!";
    	close;
    	}
    }

     

    Quote

    1@ghvy,150,96,4    script    Valkyrie Crafter    801,{
        
        mes "[Valkyrie Crafter]";
        mes "Oh! A visitor. That's do rare!";
        mes "Welcome to the portal to God's Realm.";
        mes "I'm the guardian of this place.";
        next;
        mes "[Valkyrie Crafter]";
        mes "What are you seeking stranger? The words of God himself?";
        mes "[Valkyrie Crafter]";
        mes "Or are you interested in my special crafting abilities?";
        next;
            switch(select("Yeah, I'd like to hear God' voice:So, what can you craft exactly?:That's very interesting but i have to go.")) 
        {
        case 1:    
            mes "[Valkyrie Crafter]";
            mes "oh, so you want hear God's voice.";
            mes "Well, only angels can hear him. Are you an angel?";
            next;
            mes "[Valkyrie Crafter]";
            mes "Mmm, no. You don't seem to propagate any Holy Waves of the Angels.";
            mes "I'm sorry but you won't be able to hear him today.";
            mes "Maybe if you do become an anel one day.";
            next;
            mes "[Valkyrie Crafter]";
            mes "In this case, I wish you a good day traveler!";
            close;
        case 2:
            mes "[Valkyrie Crafter]";
            mes "I'm the finest crafter of heaven.";
            mes "I can make wings that are completely out of this world.";
            next;
            mes "[Valkyrie Crafter]";
            mes "My finest work consist of crafting elemental wings from normal wings.";
            mes "It's like refining existing wings if you prefer.";
            mes "You simply need to hand me the elements that i need to do them.";
            next;
            mes "[Valkyrie Crafter]";
            mes"Oh! There is however a litte special request I would have to ask you before starting doing any crafting.";
            next;
            mes "[Valkyrie Crafter]";
            mes    "i'm a big lover of rare precious stones. They're a real source of inspiration to me !";
            mes "So, for any wings you want me to craft, could you please bring me at least 10 of each of those ores:";
            next;
            mes "[Valkyrie Crafter]";
            mes "10x Ruby";
            mes "10x Sapphire";
            mes "10x Topaz";
            mes "10x Opal";
            mes "10x Emerald";
            mes "10x Amethyst";
            mes "10x Aquamarine";
            next;
            mes "[Valkyrie Crafter]";
            mes "So what wings would you like me to craft for you ?";
            next;
            
            Main:
                switch(select("Artic Wings:Demon Wings:Phoenix Wings:Gargoyle Wings:Torn Wings:Nothing for now, tahnk you."))
            {
            case 1:
                mes "[Valkyrie Crafter]";
                mes "Those water element wings are said to provide extra knowledge about the world we live in.";
                mes "Ok, I will need the following:";
                next;
                mes "[Valkyrie Crafter]";
                mes "1x Angel Wings";
                mes "25x Mystic Frozen";
                mes "10x Frozen Rose";
                mes "50x Ice Cubic";
                mes "10x gold for the crafting fees";
                next;
                mes "[Valkyrie Crafter]";
                mes "So, do you want me to make them now ?";
                    switch(select("Sure, I got all the items!:Mm, can I choose another wings?:No, I don't have all items yet..."))
                {
                case 1:
                    {
                        if(countitem(723) < 10 || countitem(726) < 10 || countitem(728) < 10 || countitem(727) < 10 || countitem(721) < 10 || countitem(719) < 10 || countitem(720) < 10)
                        {
                            mes "[Valkyrie Crafter]";
                            mes "Oh! ssems that you didn't do the most important task: that's to bring to me all the precious stones i requested.";
                            mes "They are my source of inspiration and motivation. Without them, i can't do your wings.";
                            next;
                            mes "[Valkyrie Crafter]";
                            mes "Come back when you have them please!";
                            close;
                        }
                        if(countitem(8002) < 1 || (countitem(995) < 25 || countitem(749) < 10 || countitem(7066) < 50 || countitem(969) < 10)
                        {
                            mes "[Valkyrie Crafter]";
                            mes "Mm, I'm sorry. It seems that some items are missing.";
                            mes "Please, feel free to come again when you have everything.";
                            close;
                        }
                        if(countitem(8002) >= 1 || (countitem(995) >= 25 || countitem(749) >= 10 || countitem(7066) >= 50 || countitem(969) >= 10 || countitem(723) >= 10 || countitem(726) >= 10 || countitem(728) >= 10 && countitem(727) >= 10 || countitem(721) >= 10 || countitem(719) >= 10 || countitem(720) >= 10)
                        {
                            delitem 8002,1;
                            delitem 995,25;
                            delitem 749,10;
                            delitem 7066,50;
                            delitem 969,10;
                            delitem 723,10;
                            delitem 726,10;
                            delitem 728,10;
                            delitem 727,10;
                            delitem 721,10;
                            delitem 719,10;
                            delitem 720,10;
                            mes "[Valkyrie Crafter]";
                            mes "great! I'll start making them right now. Ok, just wait a few minutes please.";
                            next;
                            mes "[Valkyrie Crafter]";
                            mes "*Waiting impatiently for the wings*";
                            next;
                            mes "[Valkyrie Crafter]";
                            mes "( 15 minutes later )";
                            next;
                            mes "[Valkyrie Crafter]";
                            mes "Holy God! That's some great work i just did! Here yo ugo young traveler.";
                            mes "Those are you Arctic Wings.";
                            next;
                            getitem 8005,1;
                            mes "[Valkyrie Crafter]";
                            mes "Bye and don't hestate to come back! Enjoy your new wings ^^";
                            close;
                        }
                    }
                    break;    
                case 2:
                    mes "[Valkyrie Crafter]";
                    mes "So, do you want me to make them now ?";
                    goto Main;
                case 3:
                    mes "[Valkyrie Crafter]";
                    mes "Very well. Good bye traveler and please come back again!";
                    close;
                }
                
            case 2:
                mes "[Valkyrie Crafter]";
                mes "WoW, I see that you show interest in the Demons Wings. Be careful with its power!";
                mes "Well, I only need those to make them:";
                next;
                mes "[Valkyrie Crafter]";
                mes "1x Devil Wings";
                mes "100x Dragon Scale";
                mes "100x Evil Horn";
                mes "50x Tiger's Footskin";
                mes "10x gold for the crafting fees";
                next;
                mes "So, do you want me to make them now ?";
                    switch(select("Sure, I got all the items!:Mm, can I choose another wings?:No, I don't have all items yet..."))
                {
                case 1:
                    if(countitem(723) < 10 && countitem(726) < 10 && countitem(728) < 10 && countitem(727) < 10 && countitem(721) < 10 && countitem(719) < 10 && countitem(720) < 10)
                    {
                        mes "[Valkyrie Crafter]";
                        mes "Oh! ssems that you didn't do the most important task: that's to bring to me all the precious stones i requested.";
                        mes "They are my source of inspiration and motivation. Without them, i can't do your wings."
                        next;
                        mes "[Valkyrie Crafter]";
                        mes "Come back when you have them please!";
                        close;
                    }
                    if(countitem(8001) < 1 && (countitem(1036) < 100 && countitem(923) < 100 && countitem(1030) < 50 && countitem(969) < 10)
                    {
                        mes "Mm, I'm sorry. It seems that some items are missing.";
                        mes "Please, feel free to come again when you have everything.";
                        close;
                    }
                    if(countitem(8001) >= 1 && (countitem(1036) >= 100 && countitem(923) >= 100 && countitem(1030) >= 50 && countitem(969) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(727) >= 10 && countitem(721) >= 10 && countitem(719) >= 10 && countitem(720) >= 10)
                    {
                        delitem 8001,1;
                        delitem 1036,100;
                        delitem 923,100;
                        delitem 1030,50;
                        delitem 969,10;
                        delitem 723,10;
                        delitem 726,10;
                        delitem 728,10;
                        delitem 727,10;
                        delitem 721,10;
                        delitem 719,10;
                        delitem 720,10;
                        mes "[Valkyrie Crafter]";
                        mes "great! I'll start making them right now. Ok, just wait a few minutes please.";
                        next;
                        mes "[Valkyrie Crafter]";
                        mes "*Waiting impatiently for the wings*";
                        next;
                        mes "[Valkyrie Crafter]";
                        mes "( 15 minutes later )";
                        next;
                        mes "[Valkyrie Crafter]";
                        mes "Holy God! That's some great work i just did! Here yo ugo young traveler.";
                        mes "Those are you Arctic Wings.";
                        next;
                        getitem 8006,1;
                        mes "[Valkyrie Crafter]";
                        mes "Bye and don't hestate to come back! Enjoy your new wings ^^";
                        close;
                    }
                    break;
                case 2:
                    mes "[Valkyrie Crafter]";
                    mes "So, do you want me to make them now ?";
                    goto Main;
                case 3:
                    mes "[Valkyrie Crafter]";
                    mes "Very well. Good bye traveler and please come back again!";
                    close;
                }
            case 3:
            goto Main;
            case 4:
            goto Main;
            case 5:
            goto Main;
            case 6:
            close;
            }
        case 3:
        mes "[Valkyrie Crafter]";
        mes "Very well. Good bye traveler and please come back again!";
        close;
        }
    }

     

  10. 4 hours ago, Mabuhay said:

    ahh i see, didnt read the script. My bad.

    Yes, its okay. Thanks.

    4 hours ago, Bringer said:

    just duplicate the npc

    
    prontera,150,150,4	duplicate(Basic Weapons)	Basic Weapons#prt	4_DOG01

     

    I already done and fixed it. I'm just asking why did he changed the header. Hmm. ?

    By the way, thanks @Moooooon-Aisha

  11. 1 minute ago, Mabuhay said:
    
    <map name>,<x>,<y>,<facing>%TAB%shop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>{,<itemid>:<price>...}

    ^ why not use that?

    my script if you buy the item it has automatic refine to +10

  12. 4 minutes ago, Moooooon-Aisha said:
    
    -	script	Basic Weapons	-1,{
    	mes "[ Basic Weapons ]";
    	mes "What item do you wish to purchase?";
    	next;
    	.@s = select(.menu$) - 1;
    	if(Zeny < .zeny[.@s]){
    		mes "[ Basic Weapons ]";
    		mes "You don't have enough zeny.";
    		close;
    	}
    	Zeny -= .zeny[.@s];
    	getitem2 .sellitem[.@s],1,1,10,0,0,0,0,0;
    	close;
    OnInit:
    	setarray .sellitem, 28113,1201,1301;
    	setarray .zeny, 1,2,3;
    	for(.@i = 0; .@i < getarraysize(.sellitem); .@i++)
    		.menu$ = .menu$ + getitemname(.sellitem[.@i])+" +10 [Cost -> "+.zeny[.@i]+"]:";
    end;
    }

    Untested.

    Hi where's the NPC coor?

  13. new_1-1,44,103,5	script	Basic Weapons	100,{
       mes "select an item to buy";
       next;
       .@s = select( .menu$ ) -1;
       if ( countitem( .itemuse ) < .sellcost[.@s] ) {
           mes "not enough "+ getitemname( .itemuse );
           close;
       }
       delitem .itemuse, .sellcost[.@s];
       getitem2 .sellitem[.@s], 1,1,10,0, 0,0,0,0;
       close;
    OnInit:
       setarray .sellitem, 28113, 1201, 1301;
       setarray .sellcost, 10, 20, 30;
       set .itemuse, 7929;
       .@size = getarraysize( .sellitem );
       for ( .@i = 0; .@i < .@size; .@i++ )
        .menu$ = .menu$ + getitemname( .sellitem[.@i] )+" +10 [Cost -> "+ .sellcost[.@i] +"]:";
       end;
    }

    Hi, can i request this script to buy using zeny.

    I want it to change to instead of item, i can buy using zeny?

×
×
  • Create New...