Jump to content

Kidlatsv

Members
  • Posts

    26
  • Joined

  • Last visited

Posts posted by Kidlatsv

  1. So, obviously I'm bored. I've started making new sprites intended to replace some Ragnarok sprites.

    I need your input on these sprites:

    Potions.bmp

    I really hate the handles on the third iteration, but it matches the collection image more, I also think the blue potion can use a color tweak, but, what do you guys think?

    - Should I lose the greenish-blue tint on the bottle?

    - How can I improve them?

    Additionally, how do I attach pictures to my post?

  2. Can anyone enlighten me as to why there are specific items hardcoded in itemdb.h?

    The reason I'm asking this is because I am restructuring my item_db to accommodate condensed variants of the orange, blue, and green potions, and I want them to be in chronological order (545 (red), 546 (yellow, will become orange), 547 (white, will become yellow) and so on).

    I'm also eliminating the unused items in that database (light orange potion, lotto balls, a lot of crap), as well as all the redundant potions in the 1156x number range.

  3. 2 hours ago, Quesooo said:

    please update this :)

    just change the following line in Minner.txt and this'll work just fine.

    Spoiler

    else if( getequipid(9) == 6010 && getequipid(6) == 5009 )

    - It was using an old slot before, so it wasn't properly detecting the upper headgear and weapon slot.

     

    - Anyway, the bigger issue is that the script procs on ANY monster you attack, so you get iron ores, elus, irons, even when you're just attacking porings.

     

    - I've been trying find a way to make it proc only when you're attacking a certain mob, like the guardian stone for example.

     

    - I'm a newb at scripting (an understatement to be sure), I tried strmobinfo, OnTouchNPC, and a slew of other methods but I can't make it behave as I desire, it can be done, hopefully. Maybe I just lack the necessary scripting knowledge or syntax savvy to make it behave the way I want it to, I'm still hoping that someone would come to my rescue.

     

    - I actually found a way to make it work, but it would become an instancing event and that would suck, big time.

  4. I was dealing with this problem beforehand only to realize that the grfs I was using (rAthena2017 which comes with the easy offline installation, as well as the pack that comes with the latest kRO english translation) contains maps of the old iz_int.

    It could be either one of your grfs ranked higher in your data.ini contain old maps or (most probably) the kRO english translation has the old ones, check your data folder.

  5. 3 hours ago, crazyarashi said:

    it would be good to post here how you resolved it so other having the same issue maybe cam learn from it atleast :))

    Okay, so, I was using multiple variables which was absolutely wrong because every time I was setting it as an "if" variable I would have to keep track of every single variable I set beforehand, so I just used one variable and increased/decreased its value depending on the progress of the entire quest,

    to be more precise, here is the fully working version of the "errand":

    Spoiler

    //===== rAthena Script ======================================= 
    //= Izlude Academy School Quest
    //===== By: ================================================== 
    //= KidlatSV
    //===== Current Version: ===================================== 
    //= 1
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: ========================================= 
    //= Engage in a series of errands/quests which may land you an
    //    Angel School Cap or Devil School Cap.
    //= Your final reward will be dependent on who you chose to
    //    assist first, effectively locking out the other outcome.
    //= You can then talk to either NPC and have their respective 
    //    cap be converted to their Evoked version, with a 10%
    //    chance of success.
    //= If the conversion fails, you can re-acquire another normal
    //    version for 500,000z.
    //= I Edited the values of the 17256 and 17257 to give the non-
    //  evoked versions of Angel/Devil School Cap.
    //============================================================
    //                       Academy Student
    //============================================================
    iz_ac01,104,46,6    script    Academy Student#1    620,{
    if (schoolquest == 0) {
        mes "[^00c000Student is talking to herself^000000]";
        mes "Ugh, I need to get these materials to the Repairman, but I have so many other errands to run...";
            next;
                emotion e_wah;
            next;
        mes "[^00c000Student continues her monologue^000000]";
        mes "At this rate, I won't be able to finish all my tasks...";
            next;
                emotion e_swt2;
            next;
        mes "[^00c000Student continues her monologue^000000]";
        mes "Why did I agree to do all these errands in the first place?";
            next;
                emotion e_ag;
            next;
        mes "[^00c000Student continues her monologue^000000]";
        mes "I should really learn how say 'no' sometimes!";
            next;
                menu "Talk to the student.",-,"Leave him alone.",nogo;
                    mes "["+strcharinfo(0)+"]";
                    mes "Uhm, excuse me... is something bothering you?";
                        next;
                            emotion e_omg;
                        next;
                    mes "[^00c000Student^000000]";
                    mes "OH MY! You startled me.";
                        next;
                    mes "["+strcharinfo(0)+"]";
                    mes "Pardon me, I didn't mean to scare you.";
                        next;
                    mes "[^00c000Student^000000]";
                    mes "It's quite alright...";
                        next;
                            emotion e_hmm;
                        next;
                    mes "[^00c000Student^000000]";
                    mes "I don't recognize you, are you new here?";
                        next;
                    mes "["+strcharinfo(0)+"]";
                    mes "Yes I am, my name is "+strcharinfo(0)+", and you are?";
                        next;
                    mes "[^00c000Student^000000]";
                    mes "My name is Ulys, nice to meet you!";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "Is there something you needed from me?";
                        next;
                    mes "["+strcharinfo(0)+"]";
                    mes "Well, I don't really need anything, however, I heard you talking to yourself...";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "Oh, you heard that, huh? I'm terribly sorry.";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "Don't worry about it.";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "It's my problem to deal with.";
                        next;
                            menu "But I want to help",-,"Suit yourself.",nogo;
                                mes "[^00c000Ulys^000000]";
                                mes "Oh, that's nice of you...";
                                    next;
                                mes "[^00c000Ulys^000000]";
                                mes "I'm embarassed to ask, but could you help me on one of my errands?";
                                    next;
                                        menu "Sure, I don't mind.",-,"I can't, I'm late enough as it is.",nogo;
                                            mes "[^00c000Ulys^000000]";
                                            mes "You see, the mill beside the academy has been breaking down constantly of late...";
                                                next;
                                            mes "[^00c000Ulys^000000]";
                                            mes "I agreed to deliver these iron slabs needed to repair the mill, but I have a slew of other errands to attend to.";
                                                next;
                                            mes "[^00c000Ulys^000000]";
                                            mes "Now I'm in quite a pickle because I can't possibly do all these errands on time.";
                                                next;
                                            mes "[^00c000Ulys^000000]";
                                            mes "All I need you to do is deliver these iron slabs to the Repairman outside the mill which is to the northwest of Izlude.";
                                                next;
                                                    menu "I can do that, no problem!",-,"Sorry, I'm too busy right now.",nogo;
                                                        mes "[^00c000Ulys^000000]";
                                                        mes "Yes! Here are the iron slabs, please deliver them to the Repairman.";
                                                            getitem 998,10;
                                                            dispbottom "You received 10 Iron from Ulys.";
                                                            next;
                                                        mes "[^00c000Ulys^000000]";
                                                        mes "By the way, those are the last of the supplies, don't lose them!";
                                                            next;
                                                        mes "["+strcharinfo(0)+"]";
                                                        mes "I'll deliver them right away.";
                                                            next;
                                                        mes "[^00c000Ulys^000000]";
                                                        mes "Thank you for your assistance.";
                                                            set schoolquest,10;
                                                            next;
                                                            emotion e_thx;
                                                            close;
    } else if (schoolquest == 10 && countitem(998) >= 10) {
        mes "[^00c000Ulys^000000]";
        mes "Please, give those iron slabs to the Repairman, he urgently needs them to repair the mill.";
            close;
    } else if (schoolquest == 1 && countitem(998) < 10) {
        mes "[^00c000Ulys^000000]";
        mes "Did you lose those slabs?";
            next;
        mes "[^00c000Ulys^000000]";
        mes "I sincerely hope you didn't lose them, those were the last of our supplies";
            close;
    } else if (schoolquest == 11) {
        mes "["+strcharinfo(0)+"]";
        mes "I have delivered the iron as requested.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "I know, the Repairman has already sent word of the prompt delivery you made.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "I don't think you know this, but I am the head of the Devout Club in this academy.";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "Oh, really?";
            next;
        mes "[^00c000Ulys^000000]";
        mes "Yes, and we're always on the lookout for good-mannered, helpful students like yourself.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "I'd like to recruit you, what do you say?";
            next;
                menu "I'd love to join!",-,"Not interested.",nogo;
                    next;
                mes "[^00c000Ulys^000000]";
                mes "Good! Your enthusiasm is such an inspiration.";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "... I cannot accept you outright into the club though, you'll have to undertake a couple more tasks to prove that you are worthy of membership.";
                    next;
                mes "["+strcharinfo(0)+"]";
                mes "Okay, give me my next task then.";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "Your dedication is admirable...";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "... oh, where are my manners!";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "I almost forgot to give you a reward for your assistance in the mill's repair.";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "Here, take these, you've earned them.";
                    getitem 501,100;
                    getitem 601,50;
                    getitem 602,5;
                    set schoolquest,12;
                    next;
                mes "[^00c000Ulys^000000]";
                mes "Speak with me again to get your next task.";
                    close;
    } else if (schoolquest == 11) {
        mes "[^00c000Ulys^000000]";
        mes "Hello again! Do you wish to undertake your next task?";
            next;
        mes "["+strcharinfo(0)+"]";
            menu "Sure!",-,"Maybe later.",nogo;
                mes "[^00c000Ulys^000000]";
                mes "Okay, I received a request from a student of the academy, asking for assistance.";
                    next;
                mes "[^00c000Ulys^000000]";
                mes "I'd like you to seek this student out and lend any assistance you can give.";
                    next;
                        menu "Where can I find this student?",-,"I have other things to do right now.",nogo;
                            mes "[^00c000Ulys^000000]";
                            mes "The messenger said that the student was in the south-western area of the field outside of Izlude.";
                                next;
                            mes "[^00c000Ulys^000000]";
                            mes "Go forth and do another good deed for your fellow student.";
                                next;
                            mes "[^00c000Ulys^000000]";
                            mes "I'll be awaiting your return.";
                                set schoolquest,12;
                                close;
    } else if (schoolquest == 12) {
        mes "[^00c000Ulys^000000]";
        mes "Please, help that student in need.";
            close;
    } else if (schoolquest == 14) {
        mes "[^00c000Ulys^000000]";
        mes "I have received word of the assistance you gave to that student, excellent work!.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "Please, accept these as your reward.";
            getitem 7059,5;
            getitem 7060,5;
            getitem 12211,5;
            next;
        mes "["+strcharinfo(0)+"]";
        mes "No problem, am I now a full fledged member of the Angel Club?";
            next;
        mes "[^00c000Ulys^000000]";
        mes "Not just yet, I have one last task for you before I can accept you into our club.";
            next;
                menu "Okay, what is it?",-,"Maybe later.",nogo;
                    mes "["+strcharinfo(0)+"]";
                    mes "...Okay, what do you need me to do?";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "I have received some sad news, apparently, a fellow newbie adventurer has perished in Byalan Island.";
                        next;
                    mes "[^00c000Ulys^000000]";
                    mes "I'd like you to find his body and retrieve his tag so we can give it to his family.";
                        next;
                    mes "["+strcharinfo(0)+"]";
                    mes "Okay, I'll retrieve his tag.";
                        set schoolquest,15;
                        close;
    } else if (schoolquest == 15 && countitem(7309) < 1) {
        mes "[^00c000Ulys^000000]";
        mes "Please, find that adventurer's body.";
            close;
    } else if (schoolquest == 16 && countitem(7039) < 1) {
        mes "[^00c000Ulys^000000]";
        mes "Where's the tag? Please, don't tell me you lost it.";
            close;
    } else if (schoolquest == 16 && countitem(7039) >=1) {
        mes "[^00c000Ulys^000000]";
        mes "I have retrieved the adventurer's tag and given him his final rights.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "You have done a great service for the fallen adventurer by retrieving this for his family.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "May this tag bring his family even a small measure of peace.";
            emotion e_sob;
            delitem 7039,1;
            set schoolquest,17;
            next;
        mes "[^00c000Ulys^000000]";
        mes "You have demonstrated yourself to be a truly benevolent and selfless individual.";
            next;
        mes "[^00c000Ulys^000000]";
        mes "You are hereby inducted into the ranks of the Angel's Club.";
            emotion e_grat;
            next;
        mes "[^00c000Ulys^000000]";
        mes "Accept this as your reward, you earned it.";
            getitem 17256,1;
            next;
        mes "[^00c000Ulys^000000]";
        mes "Wear Club's Cap with your head held high in pride!";
            next;
        mes "[^00c000Ulys^000000]";
        mes "By the way, in the unlikely event you lose your club cap, we can make another one for you, provided you pay 500,000z for the tailoring";
            next;
        mes "[^00c000Ulys^000000]";
        mes "Also, I can make that club cap into a costume, you'll have to pay 100,000 as fees, furhtermore, there's a possibility that the cap might break.";
            close;
    } else if (schoolquest == 17) {
        mes "[^00c000Ulys^000000]";
        mes "Hello there "+strcharinfo(0)+", did you need something?";
            next;
                switch(select(" I've lost my cap. : Make my cap into a costume please. ")) {
                    case 1:
                        mes "[^00c000Ulys^000000]";
                        mes "Okay, you'll need to pay the tailoring fee.";
                            next;
                        if (Zeny >= 500000) {
                        mes "[^00c000Ulys^000000]";
                        mes "Here you are.";
                        set Zeny, Zeny-500000;
                        getitem 18814,1;
                        close;
                    } else {
                        mes "[^00c000Ulys^000000]";
                        mes "You have insufficient zeny to have a new cap made.";
                        close;
                        }
                    case 2:
                        mes "[^00c000Ulys^000000]";
                        mes "Okay, but I need to remind you again that the process might result in the cap's destruction.";
                            next;
                        mes "[^00c000Ulys^000000]";
                        mes "Are you sure?";
                            next;
                                menu "Yes!",-,"I changed my mind!",nogo;
                            next;
                        mes "[^00c000Ulys^000000]";
                        mes "Okay, give me a moment.";
                            next;
                        if ((countitem(18814) >= 1) && (Zeny >= 100000)) {
                            delitem 18814,1;
                            set Zeny, Zeny-100000;
                            if(rand(100) < 10)
                                next;
                                    specialeffect 154;
                                next;
                            getitem 18816,1;
                        mes "[^00c000Ulys^000000]";
                        mes "Success!";
                    } else {
                        specialeffect 155;
                        mes "[^00c000Ulys^000000]";
                        mes "The cap broke!";
                        emotion e_sry;
                        close;
                    }
                }
    } else if (schoolquest > 0 && schoolquest < 10) {
        mes "[^00c000Ulys^000000]";
        mes "Never talk to me again, thief!";
            next;
            emotion e_ag;
            close;
        }
        end;
    nogo:
        close;
        }
    //============================================================
    //                      Repairman
    //============================================================
    izlude,79,256,2    script    Academy Repairman#1    63,{
    if (schoolquest == 0) {
        emotion e_32;
        mes "[^00c000Repairman^000000]";
        mes "I really need to repair this mill immediately...";
            close;
    } else if (schoolquest == 10 && countitem(998) < 10) {
        mes "["+strcharinfo(0)+"]";
        mes "Hello sir, I was sent by Ulys.";
            next;
        mes "[^00c000Repairman^000000]";
        mes "Great! They finally decided to send me those Iron slabs I requisitioned, huh?";
            next;
        mes "[^00c000Repairman^000000]";
        mes "......................";
            next;
                emotion e_an;
            next;
        mes "[^00c000Repairman^000000]";
        mes "Are you kidding me right now?";
            next;
        mes "[^00c000Repairman^000000]";
        mes "You don't have the iron slabs on you!";
            next;
        mes "[^00c000Repairman^000000]";
        mes "Go get 'em, I needed those materials an hour ago!";
            next;
                emotion e_ag;
            close;
    } else if (schoolquest == 10 && countitem(998) >= 10) {
        mes "["+strcharinfo(0)+"]";
        mes "Excuse me sir..";
            next;
        mes "[^00c000Repairman^000000]";
        mes "What is it? Can't you see I'm busy!";
            next;
        menu "Yes, but I was asked to deliver these to you.",-,"Leave.",nogo;
            next;
        mes "[^00c000Repairman^000000]";
        mes "Oh, pardon me, it's just that I'm stressed with the repairs of this mill.";
            next;
                menu "It's alright.",-,"It's inexcusable!",nogo;
                    mes "["+strcharinfo(0)+"]";
                    mes "I was tasked to give you these iron slabs for the repairs.";
                        delitem 998,10;
                        dispbottom "Gave the 10 Irons to the Repairman.";
                        next;
                    mes "[^00c000Repairman^000000]";
                    mes "Thank you! Now I can get the repairs underway.";
                        next;
                            emotion e_thx;
                        next;
                    mes "[^00c000Repairman^000000]";
                    mes "I'll send word to Ulys that you delivered the iron slabs.";
                        next;
                    mes "[^00c000Repairman^000000]";
                    mes "Now, if you'll excuse me, I have to get this mill repaired.";
                        set schoolquest,11;
                        next;
                    mes "["+strcharinfo(0)+"]";
                    mes "Alright then, I'll let you get to it.";
                        close;
    } else if (schoolquest > 10) {
        mes "[^00c000Repairman^000000]";
        mes "Thank you for the assistance kid, now get lost!";
            close;
            }
        end;
    nogo:
        close;
    }

    //============================================================
    //                      Distressed Student
    //============================================================
    prt_fild08,103,151,0    script    Distressed Student#1    634,{
    if (schoolquest == 0) {
        mes "[^00c000Distressed Student^000000]";
        mes "Aw, gee, what am I supposed to do now?";
            close;
    } else if (schoolquest == 12) {
        mes "[^00c000Distressed Student^000000]";
        mes "... I'm in bad shape.";
            next;
                menu "Are you the student that asked for help from the Academy?",-,"Leave him alone.",nogo;
                    mes "[^00c000Distressed Student^000000]";
                    mes "Yes, I was the one who asked for help, so you're here to help me?";
                        next;
                            menu "I'm here to help in any way I can.",-,"Maybe later.",nogo;
                                mes "["+strcharinfo(0)+"]";
                                mes "Tell me what you need?";
                                    next;
                                mes "[^00c000Distressed Student^000000]";
                                mes "Okay, I need 50 Arrows, 30 Red Potions, 50 Fly Wings, and 3 Butterfly Wings.";
                                    next;
                                mes "[^00c000Distressed Student^000000]";
                                mes "I can't proceed with my mission without these, so please, bring them to me.";
                                    next;
                                        menu "I'll get them for you, wait here.",-,"Maybe later.",nogo;
                                            mes "[^00c000Distressed Student^000000]";
                                            mes "I'll wait for your return.";
                                                set schoolquest,13;
                                                close;
    } else if (schoolquest == 13 && countitem(1750) < 50 && countitem(501) < 30 && countitem(601) < 50 && countitem(602) < 3) {
        mes "[^00c000Distressed Student^000000]";
        mes "It is imperative that I get the items I requested, in the amount I have specified. I need them to finish my mission.";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "Hold on, I'll get them for you.";
            close;
    } else if (schoolquest == 13 && countitem(1750) >= 50 && countitem(501) >= 30 && countitem(601) >= 50 && countitem(602) >= 3) {
        menu "Here the items you asked for.",-,"Leave him alone.",nogo;
            next;
                mes "[^00c000Distressed Student^000000]";
                mes "Thank you very much!";
                    delitem 1750,50;
                    delitem 501,30;
                    delitem 601,50;
                    delitem 602,3;
                    set schoolquest,14;
                    emotion e_thx;
                    next;
                mes "[^00c000Distressed Student^000000]";
                mes "I can finally continue my mission.";
                    next;
                    mes "[^00c000Distressed Student^000000]";
                    mes "I'll send word to Ulys of your kind assistance.";
                        close;
    } else if (schoolquest > 13) {
        mes "[^00c000Distressed Student^000000]";
        mes "I owe you, friend!";
            close;
        }
    end;
    nogo:
        close;
        end;
    }
    //============================================================
    //                      Fallen Club Member
    //============================================================
    iz_dun00,151,170,0    script    Dead Body#1    457,{
    if (schoolquest == 0) {
        dispbottom "You see a dead body";
            end;
        } else if (schoolquest == 15) {
            mes "You see a dead body.";
                next;
            mes "What do I do?";
                next;
                    menu "Search the body",-,"Leave it alone.",nogo;
                        mes "*you make a thorough search of the body*";
                            next;
                        mes "*you find a newbie tag in his left breast pocket*";
                            set schoolquest,16;
                            getitem 7039,1;
                            next;
                        mes "*you say the final rights for the dead adventurer*";
                            close;
        } else if (schoolquest > 15) {
            dispbottom "You pay your respects and leave the body be.";
            end;
        }
    nogo:
        close;
    }
    //============================================================
    //                      Mischievous Student
    //============================================================
    izlude,105,254,6    script    Mischievous Student#1    975,{
    if (schoolquest == 0) {
        mes "[^00c000Dubious Looking Student^000000]";
        mes "Hey kid, you new here?";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "I am, what's it to you?";
            next;
        mes "[^00c000Dubious Looking Student^000000]";
        mes "You don't look much, but, how's about you joining our Club?";
            menu "What Club?",-,"No!",nogo;
                next;
                mes "[^00c000Dubious Looking Student^000000]";
                mes "The Misfit's Club, where students dedicated to delinquency and mischief join!";
                    next;
                        menu "Hell yeah!",-,"No way!",nogo;
                            mes "[^00c000Mischievous Student^000000]";
                            mes "You'll have to demonstrate how malevolent and deprived you are first.";
                                next;
                            mes "["+strcharinfo(0)+"]";
                            mes "What do I need to do, and, more importantly, what's in it for me?";
                                next;
                            mes "[^00c000Mischievous Student^000000]";
                            mes "Why you greedy son of a... Hmm, selfish desires, you are showing potential, worm!";
                                next;
                            mes "[^00c000Mischievous Student^000000]";
                            mes "I'm Nogud, I know who you are, so don't bother saying your name...";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "As far as 'what's in it for me?' is concerned, you'll get the standard issue school equipment AND our a cap exclusive to our club - to flaunt one's membership!";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "As for yor first evil deed, you need to talk to that mubling student inside the academy, return to me afterwards, then I'll tell you more.";
                                set schoolquest,1;
                                next;
                            mes "["+strcharinfo(0)+"]";
                            mes "Okay then, I'll see that student right away.";
                                close;
    } else if (schoolquest == 1 && countitem(998) < 10) {
            mes "[^00c000Nogud^000000]";
            mes "I thought you were leaving? Go!";
                close;
    } else if (schoolquest == 10 && countitem(998) < 10) {
            mes "[^00c000Nogud^000000]";
            mes "You talked to Ulys but you didn't get the goods?";
                next;
                    emotion e_hmm;
                next;
            mes "[^00c000Nogud^000000]";
            mes "Talk to him again and get those items!";
                close;
    } else if (schoolquest == 10 && countitem(998) >= 10) {
            mes "["+strcharinfo(0)+"]";
            mes "I've done as you asked. Now what?";
                next;
            mes "[^00c000Nogud^000000]";
            mes "Good. Let me tell you a little more about what's going on here and why I asked you to get those materials from Ulys.";
                next;
            mes "[^00c000Nogud^000000]";
            mes "It is actually the Misfit Club that is trashing the mill, it makes far too much noise.";
                next;
            mes "[^00c000Nogud^000000]";
            mes "If that Repairman gets his hands on those iron slabs then the mill will get fixed and resume making thumping noises, depriving us of sleep, YET AGAIN.";
                next;
                    emotion e_pif;
                next;
            mes "[^00c000Nogud^000000]";
            mes "All you have to do to get one step closer into the club is to hand those iron slabs to me instead of delivering them to the Repairman, doing so will put that damned mill out-of-commission permanently.";
                next;
            mes "[^00c000Nogud^000000]";
            mes "So, what'll it be?";
                next;
                    switch(select(" I want to join the Devil Club! : I can't do that ")) {
                        case 1:
                            mes "["+strcharinfo(0)+"]";
                            mes "Here are the slabs, take them.";
                                delitem 998,10;
                                dispbottom "You gave Nogud 10 Irons.";
                                emotion e_gg;
                                set schoolquest,2;
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Good, now that Repairman won't be able to repair that stupid mill.";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Take this as a reward for your commitment to anarchy!";
                                emotion e_no1;
                                getitem 501,100;
                                getitem 601,50;
                                getitem 602,5;
                                next;
                            mes "["+strcharinfo(0)+"]";
                            mes "I've done as you asked, now grant me membership.";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Not so fast, worm!";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Did you really believe that one puny evil act entitles you to membership?";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "You must be dreaming!";
                                next;
                                    emotion e_heh;
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Do a couple more evil deeds for us then MAYBE I'll let you become a member.";
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Talk to me again for your next trial, now scram!";
                                close;
                        case 2:
                            mes "[^00c000Nogud^000000]";
                            mes "Your loss, dweeb!";
                                next;
                                    emotion e_pif;
                                close;
                            }
    } else if (schoolquest == 2) {
            mes "["+strcharinfo(0)+"]";
            mes "What do you want me to do next?";
                next;
            mes "[^00c000Nogud^000000]";
            mes "I want you to take this vial and pour it into the fountain.";
                next;
            mes "["+strcharinfo(0)+"]";
            mes "What the hell for...?";
                next;
            mes "[^00c000Nogud^000000]";
            mes "Don't ask questions, just do it!";
                next;
                    emotion e_pif;
                next;
            mes "["+strcharinfo(0)+"]";
            mes "It sounds like a stupid request";
                next;
            mes "[^00c000Nogud^000000]";
            mes "Take this and go, NOW!";
                next;
                emotion e_an;
                getitem 7103,1;
                next;
            mes "["+strcharinfo(0)+"]";
            mes "Okay, okay, why do you have to be so nasty about it.";
                set schoolquest,3;
                close;
    } else if (schoolquest == 3 && countitem(7103) >= 1) {
        mes "[^00c000Nogud^000000]";
        mes "What are you doing? I told you to get going! GO!";
            next;
                emotion e_pif;
            close;
    } else if (schoolquest == 3 && countitem(7103) < 1) {
        mes "[^00c000Nogud^000000]";
        mes "What?";
            next;
                menu "I lost the vial",-,"Nothing",nogo;
                    mes "[^00c000Nogud^000000]";
                    mes "You idiot, don't lose it again!";
                    getitem 7103,1;
                    close;
    } else if (schoolquest == 4) {
        mes "["+strcharinfo(0)+"]";
        mes "I poured the contents of that vial into the fountain.";
            next;
        mes "[^00c000Nogud^000000]";
        mes "Really? What happened after?";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "The people around the fountain panicked in disgust over the smell.";
            next;
        mes "[^00c000Nogud^000000]";
        mes "Just as expected! HAHAHAHAHA!";
            next;
                emotion e_gg;
            next;
        mes "[^00c000Nogud^000000]";
        mes "You have done well! Take these for a job well done!";
            next;
                emotion e_no1;
            next;
            getitem 7059,5;
            getitem 7060,5;
            getitem 12211,5;
            next;
        mes "[^00c000Nogud^000000]";
        mes "Talk to me again for your last task, now leave!";
            set schoolquest,5;
            close;
    } else if (schoolquest == 5) {
            mes "[^00c000Nogud^000000]";
            mes "Now for your last task.";
                next;
            mes "["+strcharinfo(0)+"]";
            mes "Yes? What is it? I'm getting a little tired of these shallow tasks.";
                next;
            mes "[^00c000Nogud^000000]";
            mes "Don't you dare sass me!";
                next;
                    emotion e_an;
                next;
            mes "[^00c000Nogud^000000]";
            mes "...But, you've got guts dweeb, I'll give you that!";
                next;
            mes "[^00c000Nogud^000000]";
            mes "Well, enough tongue-wagging...";
                next;
            mes "[^00c000Nogud^000000]";
            mes "...I have the perfect task for you, since you seem really eager to do something really devious.";
                next;
            mes "["+strcharinfo(0)+"]";
            mes    "It had better not be another fetch errand!";
                next;
            mes "[^00c000Nogud^000000]";
            mes "You'll take what I give you, now listen!";
                next;
            mes "[^00c000Nogud^000000]";
            mes "A member of the Devout Club is asleep on the benches near the entrance of Izlude.";
                next;
            mes "["+strcharinfo(0)+"]";
            mes "...and?";
                next;
            mes "[^00c000Nogud^000000]";
            mes "I want you to steal his coin bag and give it to me.";
                next;
            mes "["+strcharinfo(0)+"]";
            mes "That's it? sheesh...";
                next;
            mes "[^00c000Nogud^000000]";
            mes "It's easy enough that even an idiot like you can do it. Now go!";
                set schoolquest,6;
                close;
    } else if (schoolquest == 6 && countitem(670) < 1) {
        mes "What are you doing? STEAL THAT BAG OF COINS BEFORE HE WAKES UP!";
            next;
                emotion e_pif;
            close;
    } else if (schoolquest == 7) {
            mes "[^00c000Nogud^000000]";
            mes "Well, do you have the coin bag?";
                menu "I have the coin bag.",-,"No.",nogo;
                    if (countitem(670) >= 1) {
                    mes "["+strcharinfo(0)+"]";
                    mes "Yes, it was easy enough getting this.";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "Excellent, now give it to me.";
                        next;
                        delitem 670,1;
                        emotion e_gg;
                        dispbottom "You gave Nogud the bag.";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "You have done well, and have proven yourself worthy of membership into the Misfit Club.";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "From this day onward, you are now a member of the most devious club in Rune-Midgar!";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "Take these, you've earned them!";
                        next;
                        emotion e_gg;
                        set schoolquest,8;
                        getitem 17257,1;
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "Wear the club's cap with pride!";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "By the way, should you lose your club cap, just talk to me and we can fashion another one for you.";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "We will have to charge you 500,000 Zeny for it though.";
                        next;
                    mes "[^00c000Nogud^000000]";
                    mes "Also, I can convert the cap into a costume item, it would cost you 100,000 Zeny for it, and there's no guarantee that it will succeed.";
                        close;
                } else {
                    mes "[^00c000Nogud^000000]";
                    mes "GO GET IT!";
                        close;
                    }
    } else if (schoolquest == 8) {
        mes "[^00c000Nogud^000000]";
        mes "What is it??";
            next;
                switch(select(" I want another cap. : I want my cap converted. ")) {
                    case 1:
                        mes "[^00c000Nogud^000000]";
                        mes "Okay, you'll need to pay the required fee.";
                            next;
                        if (Zeny >= 500000) {
                        mes "[^00c000Nogud^000000]";
                        mes "Here you are.";
                        set Zeny, Zeny-500000;
                        getitem 18815,1;
                        close;
                    } else {
                        mes "[^00c000Nogud^000000]";
                        mes "You have insufficient funds to make a new cap.";
                        close;
                    }
                    case 2:
                        mes "[^00c000Nogud^000000]";
                        mes "Are you sure?";
                        next;
                            menu "Yes!",-,"I changed my mind!",nogo;
                                next;
                            mes "[^00c000Nogud^000000]";
                            mes "Okay, here we go.";
                                next;
                            if ((countitem(18815) >= 1) && (Zeny >= 100000)) {
                                delitem 18814,1;
                                set Zeny, Zeny-100000;
                                if(rand(100) < 10) {
                                getitem 18817,1;
                                specialeffect 154;
                            mes "[^00c000Nogud^000000]";
                            mes "Success!";
                        } else {
                                specialeffect 155;
                                mes .npc$;
                                mes "I'm Sorry";
                                emotion e_sry;
                                close;
                                }
                            }
                        }
    } else if (schoolquest > 10) {
        mes "[^00c000Nogud^000000]";
        mes "Stay away from me if you don't want to get hurt, cretin!";
            close;
        end;
        }
    nogo:
        close;
        }
    //============================================================
    //                     Fountain Desecration
    //============================================================
    izlude,102,130,0    script    Izlude Fountain#1    111,{
    if (schoolquest == 0) {
        mes "You see a water cycling mechanism.";
            next;
        mes "How interesting...";
            next;
        mes "NOT!";
            next;
        mes "Don't you have more important things to do other than stare at a damn water cycling mechanism?";
            close;
    } else if (schoolquest > 10) {
        mes "You see a water cycling mechanism.";
            next;
        mes "How interesting...";
            next;
        mes "NOT!";
            next;
        mes "Don't you have more important things to do other than stare at a damn water cycling mechanism?";
            close;
    } else if (schoolquest == 3) {
        mes "You approach the fountain and see the water cycling mechanism.";
            next;
        mes "What do you want to do?";
            next;
                menu "Pour the contents of the vial in",-,"Don't do anything",nogo;
                    if (countitem(7103) >= 1) {
                        delitem 7103,1;
                    mes "*SNIFF*";
                        next;
                    mes "*SNIFF*";
                        next;
                    mes "Ew! What is that smell?";
                        next;
                    mes "Yuck! It smells like a fresh batch of Edgga's crap!";
                        next;
                    mes "HOW AWFUL! the smell is similar to Baphomet's butt-hair, ON FIRE!";
                        next;
                    mes "OH MY GOD! THE SMELL IS INTENSIFYING! RUN!";
                        next;
                    dispbottom "The people around the fountain are getting hysterical over the awful stench";
                        set schoolquest,4;
                        close;
                    } else {
                    dispbottom "You don't have the vial in your possession!";
                        close;
                }        
        end;
            }
    nogo:
        close;
    }
    //============================================================
    //                            Thieving
    //============================================================
    izlude,137,111,0    script    Angel Club Member#1    10117,{
    if (schoolquest == 0) {
        npctalk "ZzzzZzzzzzzzzzz.....";
            end;
    } else if (schoolquest == 6) {
            mes "You see a man soundly sleeping on the bench.";
                next;
            mes "What do you want to do?";
                next;
                    menu "Pick his pocket",-,"Leave him alone",nogo;
                        mes "Your slip into his jacket pocket...";
                            next;
                            if(rand(100) < 30) {
                            getitem 670,1;
                            specialeffect 154;
                            mes "You have nabbed his coin bag!";
                            set schoolquest,7;
                        } else {
                            mes "Your pickpocketing attempt failed.";
                            close;
                        }
    } else if (schoolquest = 7) {
            mes "You already stole this man's coin bag, his pockets are empty.";
                        close;
        } 
            end;
    nogo:
        close;
    }

     

  6. Here I am again, in desperate need of help.

    I've been reading the documentation but can't make the set variables to fire/load in order, i've been trying to make re-editing this and trying all sorts of combinations for around 5 hours now with no end in sight.

    The quest is supposed to start by talking to the NPC inside the academy or the NPC right outside the gate.

    Upon talking to that NPC inside, it asks you to deliver iron to this guy within prontera, but the other NPC right outside the gate also wants it.

    If you choose to give the iron to that repairman it was supposed to make the npc right outside the academy gate mad at you, removing that branch of the quest from being completed.

    On the other hand, if you choose to give the iron to the NPC just outside the gate then the NPC inside the academy would become angry with you, blocking you from that branch of the quest.

    ---------------------

    After that both branches would proceed to two more errands each . In the end rewarding you with the angel school cap or devil school cap, depending on which branch you chose on that initial errand.

    ---------------------

    the problem is the set variables fire when talking to the NPC initially, so you deliver the iron, but when you come back to it, the NPC loops back to the first line and gives you iron again.

    --------------------

    When I run rAthena it doesn't display any errors.

     

    schoolquest1.txt

    schoolquest2.txt

    schoolquest3.txt

  7. How do I activate and deactivate OnNPCKillEvent?

    prt_fild08,240,263,3    script    Little Annie    716,{
    // INITIAL ENCOUNTER
    if (FirstEncounter == 0) {
        if(1) {
        mes .npc$;
        mes "Hi, mister...";
            emotion e_sob,0,"Little Annie";
        }
        else {
        mes .npc$;
        mes "Hi, miss...";
            emotion e_sob,0,"Little Annie";
        }
            next;
        mes "["+strcharinfo(0)+"]";
        mes "What's wrong?";
            next;
        mes .npc$;
        mes "My little Okja here is being bullied by Porings!";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "Do you want me to teach them a lesson?";
            next;
        mes .npc$;
        mes "You'd do that for us?";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "Yes I would, so don't be sad anymore.";
            next;
        mes .npc$;
        mes "If you could, please kill 10 Porings to teach them not to bully my little Okja anymore.";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "I'll go and teach them a lesson, cheer-up!";
            next;
        mes .npc$;
        mes "Please teach those bullies a lesson for us...";
            set FirstEncounter, 1;
            close;
        }
    // SUCCEEDING ENCOUNTERS
    {
    if ((FirstEncounter == 1) && (PoringKills < 10)) { 
        mes .npc$;
        mes "Please, punish those bullies for us.";
            }
            else {
    if ((FirstEncounter == 1) && (PoringKills >= 10))
        mes .npc$;
        mes "You've done it! You punished those Poring Bullies!";
            next;
        mes .npc$;
        mes "I hope you don't mind, but little Okja tells me that we should give you a reward for your assistance.";
            next;
        mes .npc$;
        mes "You see, I make hats adorned with ears resembling those of my cute little Okja, and I want to make one for you as a form of recompense.";
            next;
        mes .npc$;
        mes "Speak to me again if you're interested!";
            set killingdone, 1;
            close;
        }
    //
    if (killingdone == 1) {
        mes .npc$;
        mes "As I've already mentioned, I can make you a hat adorned with replicas of my cute little Okja's ears.";
            next;
        mes .npc$;
        mes "I'll need materials to make it for you though, so please gather them for me~";
            next;
        mes .npc$;
        mes "I'll need 10,000 Zenies, 50 Animal Skins, 25 Green Herbs, and a Sweet Milk for my consumption, Hee~hee~.";
            next;
        mes "["+strcharinfo(0)+"]";
        mes "Make it for me then!";
            next;
                if ((Zeny >= 10000) && (countitem(919) >= 50) && (countitem(511) >= 25) && (countitem(627) >= 1)) {
                    delitem 919,50;
                    delitem 511,25;
                    delitem 627,1;
                    set Zeny, Zeny-10000;
                    set PoringKills,PoringKills - 10;
                    set oquest, 1;
                        mes .npc$;
                        mes "Here you are, thank you again!";
                            emotion e_no1,0,"Little Annie";
                            getitem 5407,1;
                }
                    else {
                            mes .npc$;
                            mes "Come on, "+strcharinfo(0)+", I can't make the hat for you if you don't bring me what I need.";
                                close;
            }
        }
    //
            OnNPCKillEvent:
            if( killedrid == 1002 ){
                set PoringKills,PoringKills +1;
                dispbottom "You have killed "+PoringKills+" Porings.";
            }
            end;
    //
    OnInit:
        .npc$ = "[^51ba31Little Annie^000000]";
        
        while(1){
            npctalk "Don't worry Okja, we'll punish them soon enough!";
            sleep 30000;
            }
        end;
        }
    }
    prt_fild08    mapflag    loadevent

    Like here, I want the OnNPCKillEvent to activate only after line 37, then deactivate after line 59?

  8. I understand most of the changes, except for these parts, I read the documentation but can't really understand it:

     

    for ( .@i = 0; .@i < getarraysize(.require); .@i += 2 ){
    			mes .require[.@i+1]+" "+getitemname(.require[.@i]);

    and this part especially:

    	for ( .@j = 0; .@j < getarraysize(.require); .@j += 2 ){
    		delitem .require[.@j], .require[.@j+1];
  9. I need help, obviously I SUCK at scripting, I made this and have been trying, for hours, to figure out what's wrong with it, so I need a little help.

    Quote

    mag_dun01,127,123,3    script    Dancing Flame    802,{
    npctalk "Greetings, hero, please approach.";
        sleep 60000;
        end;

        mes "[Dancing Flame]";
        mes "I am a fire elemental, and I have a proposal for you, "+strcharinfo(0)+".";
        menu "What is it?",l_option1,"I don't have for this, sorry.",l_option2;
        close;

    l_option2
            mes "[Dancing Flame]";
            mes "That's too bad, come back when you change your mind."
            close;

    l_option1
            mes "[Dancing Flame]";
            mes "I know of thy quest to save Midgard and I wish to help you on your journey."
            next;
            mes "[Dancing Flame]";
            mes "In order to aid you I shall make a headgear imbued with some of my powers, which will surely be of great use to you."
            next;
            mes "["+strcharinfo(0)+":]";
            mes "What headgear would that be?";
            next;
            mes "[Dancing Flame]";
            mes "...a ^00c000Flaming Ten-Gallon hat^0000000.";
            next;
            mes "[Dancing Flame]";
            mes "It won't come for free though."
            next;
            mes "[Dancing Flame]";
            mes "I will need you to collect items which I require in order to make the headgear for you.";
            next;
            mes "["+strcharinfo(0)+".]";
            mes "What do you need?";
            next;
            mes "[Dancing Flame]";
            mes "I need the following items:"
            mes "^00FF00_______________________________^000000";
            mes "A Cowboy Hat;";
            mes "100 Live Coals;";
            mes "85 Burning Hearts;";
            mes "70 Burning Hairs;";
            mes "55 Burning Horseshoes;";
            mes "40 Flaming Hearts;";
            mes "25 Red Gemstones; and";
            mes "10 Shards of Fire Essences.";
            mes "Bring me these items and I sh-all make the headgear for you, now go.";
                set #10gallonstarted,1;
                close;

    if (#10gallonstarted == 1) {
        mes "[Dancing Flame]";
        mes "You have returned, have you collected the items I require?"
        next;
        mes "["+strcharinfo(0)+".]";
        mes "Yes, I have!";
        next;
        mes "[Dancing Flame]";
        mes "Very well then, let's check...";
        next;
            if(countitem(2248) < 1) goto l_noitems;
            if(countitem(7098) < 100) goto l_noitems;
            if(countitem(7097) < 85) goto l_noitems;
            if(countitem(7122) < 70) goto l_noitems;
            if(countitem(7120) < 55) goto l_noitems;
            if(countitem(994) < 40) goto l_noitems;
            if(countitem(716) < 25) goto l_noitems;
            if(countitem(7426) < 10) goto l_noitems;
            delitem 2248,1;
            delitem 7098,100;
            delitem 7097,85;
            delitem 7122,70;
            delitem 7120,55;
            delitem 994,40;
            delitem 716,25;
            delitem 7426,10;
        mes "[Dancing Flame]";
        mes "Excellent, you have collected all that I require!";
        mes "May it serve you well.";
            getitem 18940,1;
        next;
        mes "[Dancing Flame]";
        mes "If you wish for me to make you another, all you have to do is bring me the required items again.";
        close;

    l_noitems;
            "I'm sorry, but you need to collect more of the required items.";
            close;
        }

    OnPCLoadMapEvent:
        showevent 1,0;
        end;
    }

    Please be gentle, and pardon the poor dialogue.

×
×
  • Create New...