Jump to content

archilles89

Members
  • Posts

    72
  • Joined

  • Last visited

Posts posted by archilles89

  1. This mode is ready on svn.

    src/config/core.h

     

     

    /// Uncomment to enable skills damage adjustments
    /// By enabling this, db/skill_damage.txt and the skill_damage mapflag will adjust the
    /// damage rate of specified skills.
    //#define ADJUST_SKILL_DAMAGE
    

     

    Change this //#define ADJUST_SKILL_DAMAGE to #define ADJUST_SKILL_DAMAGE.

     

    I don't have this in mine. I'm using r17442. How can I make this work?

  2. I am requesting for a script that lets online members of a guild to get a notice who has just recently logged on.

     

    For example:

    1. Player A has just logged in.

    2. Any online guild members will get a message at their chatbox in blue saying "Guild member Player A has connected.".

     

    I'm guessing that this script isn't anything fancy. So if anyone is able to help me with this you'll just make my day" :)

  3. Hello, the topic pretty much says it all. I would like a recurring 6 vs 6 party event that starts off every other Sunday. The event shall have restricted items for example no MVP Cards, no Berries, no Assumptio Scroll and other stuff (customizable). The winners 3 out of 5 rounds shall be rewarded with an array of items. Please let me know if this is possible and can someone write this for me? Thanks a lot!

  4. Hey guys, since I'm always getting annoyed with players requesting for 24/7 and I don't want to /exall. I came up with a pretty cool idea for an announce NPC but problem is I'm too noob at scripting. D:

    Can anyone write up this very simple script I think.

     

    The idea is simple, whisper to an NPC for example "npc:announce" and type in anything that you want to be announced to the server. In return the NPC will announce what you've said with addition of a pre-text like "MyRO:<announce>"

     

    In summary, it's an announcing NPC that lets only GMs whisper what to be announced to the players.

     

    For example: I whispered to said npc [npc:announce] this message "I am a GameMaster" and in return the NPC shall announce it as "MyRO: I am a Game Master" globally.

     

    Thanks in advance for taking the time to read and hopefully write up a script for this. Thanks!

  5. I had few problems with the script. First after the event finishes and everyone is warped to Prontera, the last round target is still killable. Second, after the target is killed, he/she is automatically resurrected, I thought this was an elimination game? Thirdly, towards the end of the rounds, multiple player is targeted, is this normal? Can anyone please fix this for me?

  6. As the title state, I would like to know if I can change the cash points payment to a custom point I've made.

    My custom points is called "Daily Points" or

    set $DailyPointsT,$DailyPointsT+10;

    Appreciate the help from you guys. Thanks in advance!.

                     
    dewata,146,96,5    script    Sexy Shim    485,{
    function Add; function Chk; function Slot; function A_An;
    
        cutin "3rd_wd_kimdancer01",2;
        mes "[^0000FFSexy Shim^000000]";
        mes "I have tons of cool costumes for you to see.";
        mes "Come take a peek at my WACKY Costume Shop!";
        next;
        if (.Shops$ == "") set .@i, select(.menu$);
        else set .@i,1;
        dispbottom "Select one item at a time.";
        callshop "qashop"+.@i,1;
        npcshopattach "qashop"+.@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 "qashop"+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:"+((((@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);
                set @qe6,1;
                if (@qe1&1) atcommand "@changelook 3 "+@qe2;
                if (@qe1&256) atcommand "@changelook 1 "+@qe2;
                if (@qe1&512) atcommand "@changelook 2 "+@qe2;
                break;
            case 3:
                close;
            }
        }
    OnEnd:
        if (@qe6) {
            atcommand "@changelook 3 "+@qe3;
            atcommand "@changelook 1 "+@qe4;
            atcommand "@changelook 2 "+@qe5;
        }
        for(set .@i,0; .@i<7; set .@i,.@i+1)
            setd "@qe"+.@i,0;
        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],"Costume Upper","Costume Middle","Costume Lower";
        // 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,22074,1,0,0,22000,30);
        Add(1,22081,1,0,0,22000,30);
        Add(1,22086,1,0,0,22000,30);
        Add(1,22088,1,0,0,22000,30);
        Add(1,22094,1,0,0,22000,30);
        Add(1,22029,1,0,0,22000,20);
        Add(1,22030,1,0,0,22000,20);
        Add(1,22031,1,0,0,22000,20);
        Add(1,22032,1,0,0,22000,20);
        Add(1,22033,1,0,0,22000,20);
        Add(1,22034,1,0,0,22000,20);
        Add(1,22035,1,0,0,22000,20);
        Add(1,22036,1,0,0,22000,20);
        Add(1,22037,1,0,0,22000,20);
        Add(1,22038,1,0,0,22000,20);
        Add(1,22039,1,0,0,22000,20);
        Add(1,22040,1,0,0,22000,20);
        Add(1,22041,1,0,0,22000,20);
        Add(1,22042,1,0,0,22000,20);
        Add(1,22043,1,0,0,22000,20);
        Add(1,22044,1,0,0,22000,20);
        Add(1,22045,1,0,0,22000,20);
        Add(1,22046,1,0,0,22000,20);
        Add(1,22047,1,0,0,22000,20);
        Add(1,22048,1,0,0,22000,20);
    
        Add(2,22073,1,0,0,22000,30);
        Add(2,22080,1,0,0,22000,30);
        Add(2,22082,1,0,0,22000,30);
        Add(2,22092,1,0,0,22000,30);
        Add(2,22093,1,0,0,22000,30);
        Add(2,22049,1,0,0,22000,20);
        Add(2,22050,1,0,0,22000,20);
        Add(2,22051,1,0,0,22000,20);
        Add(2,22052,1,0,0,22000,20);
        Add(2,22053,1,0,0,22000,20);
        Add(2,22054,1,0,0,22000,20);
        Add(2,22055,1,0,0,22000,20);
    
        Add(3,22071,1,0,0,22000,30);
        Add(3,22072,1,0,0,22000,30);
        Add(3,22075,1,0,0,22000,30);
        Add(3,22079,1,0,0,22000,30);
        Add(3,22084,1,0,0,22000,30);
        Add(3,22085,1,0,0,22000,30);
        Add(3,22087,1,0,0,22000,30);
        Add(3,22089,1,0,0,22000,30);
        Add(3,22091,1,0,0,22000,30);
        Add(3,22095,1,0,0,22000,30);
        Add(3,22056,1,0,0,22000,20);
        Add(3,22057,1,0,0,22000,20);
        Add(3,22058,1,0,0,22000,20);
        Add(3,22059,1,0,0,22000,20);
        Add(3,22062,1,0,0,22000,20);
        Add(3,22064,1,0,0,22000,20);
        Add(3,22065,1,0,0,22000,20);
        Add(3,22066,1,0,0,22000,20);
        Add(3,22067,1,0,0,22000,20);
        Add(3,22068,1,0,0,22000,20);
        Add(3,22069,1,0,0,22000,20);
        Add(3,22070,1,0,0,22000,20);
    
    // --------------------------------------------------
        freeloop(0);
        set .menu$,"";
        for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
            set .menu$, .menu$+.Shops$[.@i]+":";
            npcshopdelitem "qashop"+.@i,909;
        }
        end;
    }
    
    // -------- Dummy data (duplicate as needed) --------
    -    shop    qashop1    -1,909:-1
    -    shop    qashop2    -1,909:-1
    -    shop    qashop3    -1,909:-1
    
  7. Ok so I've tried everything, I want to make the safe limit to +4 but instead the safe limit is still at +10. I've tried everywhere, including

     

    db/re/refine_db.txt

     

    0,0,0,0,100:100,100:100,100:100,100:100,60:200,40:200,40:200,20:200,25:300,10:300,10:300,10:300,10:400,10:40,90:40,60:40,60:50,30:50,30:500,25:50
    // Level 1 weapons
    1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,20:0,100:0,100:0,100:0,100:0,100:0,100:300,100:300,90:300,60:300,30:300
    // Level 2 weapons
    2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,35:0,20:0,100:0,100:0,100:0,100:0,100:0,100:600,90:600,60:600,30:600,30:600
    // Level 3 weapons
    3,500,6,800,100:0,100:0,100:0,100:0,100:0,60:0,50:0,20:0,20:0,20:0,100:0,100:0,100:0,100:0,100:0,90:900,75:900,35:900,305:900,35:900
    // Level 4 weapons
    4,700,5,1400,100:0,100:0,100:0,100:0,60:0,40:0,40:0,20:0,20:0,10:0,100:0,100:0,100:0,100:0,90:0,60:1200,60:1200,30:1200,30:1200,10:1200

     

    and even in the Refine Main Function at

     

    npc/merchants.txt

     

        case 0:     //Refine Armor
            set .@price,2000;
            set .@material,985;
            set .@safe,4;
            break;
        case 1:     //Refine Level 1 Weapon
            set .@price,50;
            set .@material,1010;
            set .@safe,7;
            break;
        case 2:     //Refine Level 2 Weapon
            set .@price,200;
            set .@material,1011;
            set .@safe,6;
            break;
        case 3:     //Refine Level 3 Weapon
            set .@price,5000;
            set .@material,984;
            set .@safe,5;
            break;
        case 4:     //Refine Level 4 Weapon
            set .@price,20000;
            set .@material,984;
            set .@safe,4;
            break;
        case 5:     //Refine other stuff?
            set .@price,2000;
            set .@material,985;
            set .@safe,4;
            break;
    

     

    None of this work. Can someone please tell me how do I set the default SAFE refine limit to +4 instead of +10?

  8. Hello, I would like to request for a NPC which lets you change job and maximizes Base Levels, Job Levels and all skills by using an Item for example a TCG Card.

    Basically an auto-lever NPC that requires 1 TCG Card.

    It's a 2-2 Trans Class Jobs + Babies with 99/70 Base and Job Level. Thanks in advance!

  9. is there an actual robe-looking sprite from the officials? or do you need to find a custom one? I tried ratemyserver but none came out as a robe. I would really like to see an actual robe-looking sprite which covers the entire body and maybe ehem an akatsuki robe perhaps? hahah

  10. Try :

    -    script    Sample    -1,{
    OnPCLoginEvent:
        set .to_remove, 2305;
        set .to_give, 2302;
        if ( countitem( .to_remove ) > 1 ) end;
        getinventorylist;
        for ( set .@i, 0; .@i < @inventorylist_count; set .@i, .@i + 1 ) {
            if ( @inventorylist_id[.@i] == .to_remove ) {
                if ( getequipid(2) == .to_remove ) {
                    if ( !getequipcardcnt(2) ) end;
                        successremovecards 2;
                        mes "Success";
                } else {
                    set .@card1, @inventorylist_card1[.@i];
                    set .@card2, @inventorylist_card2[.@i];
                    set .@card3, @inventorylist_card3[.@i];
                    set .@card4, @inventorylist_card4[.@i];
                    delitem @inventorylist_id[.@i], 1;
                    getitem .to_give, 1;
                    if ( .@card1 )
                        getitem .@card1, 1;
                    if ( .@card2 )
                        getitem .@card2, 1;
                    if ( .@card3 )
                        getitem .@card3, 1;
                    if ( .@card4 )
                        getitem .@card4, 1;
                    mes "Success!";
                }
            }
        }
        end;
    }
    

    It works fine now Thanks!!

    So if I wanted to remove multiple items and give out multiple new items and cards back I just re-use the script?

×
×
  • Create New...