Jump to content

Aeromesi

Support Leaders
  • Content Count

    821
  • Joined

  • Last visited

  • Days Won

    43

Posts posted by Aeromesi


  1. [Add-On] Recent | Favorite Warps (Euphy's Warper)


    [Add-On] Recent | Favorite Warps (Euphy's Warper)

     

    What exactly is the Recent and Favorite addition to Euphy's Warper?

     

    It's exactly what it sounds like.

    • You can choose from 5 Most Recent locations you have Warped to.
    • You can choose to [save] or [select] your Favorite Warps.
    • Your Favorite Warps are saved by saving your Most Current Recent Warps list.
       
      It's a straight sample from our Public Github in "..npc/custom/warper.txt" (Just so you know what to copy and paste if you have warper.txt enabled.)
       
       
      Enjoy Hercules!


     


  2. Well the way it was before was a very custom approach to handling the item/mobs (I found it kind of hard). We're now going into a libconfig format change to our files to standardize how everything is... or something like that, I know I'm close to the answer.

    Maybe problem with converting rA -> Herc stuff? I could understand at that point but we're just updating to a more standardized reading of the files


  3.  

     

    Edit the OnTimer labels if you want it to every 3 hours.

     

    OnTimer10800000: // 3 hours
    

     

    How about the cashpoint to coin reward? Thanks!

     

     

    Well in your PM I told you about that, here's the randomized maps you wanted (and for anyone else) just add the maps in the array and the x/y coordinates Satan should spawn on.

     

     

    // Created by Aeromesi
    -    script    SatanMorroc#Inv    -1,{
     
    OnInit: 
        .points = 100; // Points to give the player upon killing Morocc.
        .points_name$ = "#CASHPOINTS"; // Variable name for points
        .MobID = 1916;
        .MobAM = 1;
        setarray .maps$[1],"morocc","prontera","geffen";
        setarray .mapsx[1],158,150,180;
        setarray .mapsy[1],92,150,150;
        initnpctimer;
        end;
     
        OnTimer360000: // 1 hour
        OnSpawnMorocc:
            if ( !$@Invaded ) {
            .mapsize = getarraysize(.maps$);
            .mapselect = rand(.mapsize);
            announce "Satan has invaded "+.maps$[.mapselect]+"! Head there at once to stop him!",bc_all;
            $@Invaded++;
            monster .maps$[.mapselect],.mapsx[.mapselect],.mapsy[.mapselect],""+strmobinfo(1,.MobID)+"",1916,1,strnpcinfo(0)+"::OnSatanDead";
            end;
    } else
            if ( $@Invaded ) {
            end;
    }
        OnSatanDead:
            announce "Congratulations to "+strcharinfo(0)+" for sending Satan back into the Dimensional Vortex...",bc_all;
            setd .points_name$, getd(.points_name$) + .points;
            dispbottom "You now have "+#CASHPOINTS+" Cash Points!";
            sleep 4000;
            announce "Be warned... Satan will be back again.",bc_all;
            $@Invaded = 0;
            initnpctimer;
            end;
        }
    

  4. Figured it out.

    All you need to do is the following:

    Edit $@MaxDup to the TOTAL amount of duplicated NPCS + the original NPC is, so if we have 1 in prontera, 1 in geffen, 1 in izlude, it would be 3.
    Added '@fireloc' command so you can view the locations of your fires. Get rid of the 99 requirement so players can use the command if need be.

    Version 1.0 : Without Healing feature
     

    prontera,151,159,4    script    Firewood#1    89,{
     
    for ( .n = 1; .n <= $@MaxDups; .n++ ) {
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 0) {
        callsub OnStartFire;
    end;
    } else
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 1) {
        callsub OnEndFire;
    end;
    }
    }
     
    OnStartFire:
            mes "[Fire]";
            switch(select("Light firewood","Exit"))
            {
                
                case 1:
                if ( countitem(7035) >= 1 )
            {
                delitem 7035, 1;
                mes "Matchstick consumed. Lighting fire.";
                $@Lit[.n] = 1;
                donpcevent strnpcinfo(0)+"::OnEnableFire";
                close;
            } else
                mes "Firewood needs 1 Matchstick to be lit.";
                close;
     
                case 2:
                mes "Fire was not lit.";
                close;
            }
     
    OnEndFire:
            switch(select("Put out firewood","Exit"))
            {
                
                case 1:
                $@Lit[.n] = 0;
                dispbottom "You put out the fire.";
                donpcevent strnpcinfo(0)+"::OnDisableFire";
                close;
                
                case 2:
                close;
            }
     
    OnEnableFire:
        initnpctimer;
        end;
     
    OnDisableFire:
        stopnpctimer;
        end;
     
    OnTimer500:
        specialeffect 25;
        initnpctimer;
        end;
     
    OnAtFireLoc:
    for ( .@i = 1; .@i <= 3; .@i++ ) {
        mes ""+$@FireMap$[.@i]+","+$@FireX[.@i]+","+$@FireY[.@i]+".";
    }
        close;
     
    OnInit:
    // Change this to how many duplicate fire's you make.
        $@MaxDups = 3;
    // Command '@fireloc' to view the locations of your fires.
    // For players to use this command, just get rid of the 99 requirement below.
        bindatcmd "fireloc",strnpcinfo(0)+"::OnAtFireLoc",99;
     
     for ( .@i = 1; .@i <= $@MaxDups; .@i++ ) {
    getmapxy .@mapname$[.@i],.@mapx[.@i],.@mapy[.@i], 1, "Firewood#"+.@i+"";
    // debugmes "NPC Firewood#"+.@i+": "+.@mapname$[.@i]+","+.@mapx[.@i]+","+.@mapy[.@i]+".";
        $@FireMap$[.@i] = .@mapname$[.@i];
        $@FireX[.@i] = .@mapx[.@i];
        $@FireY[.@i] = .@mapy[.@i];
    }
    end;
    }
    
    

    All I need to do now is add the feature for the healing..., maybe a refine system similar to Blade and Souls near a fire higher success chance? So many ideas  :heh:


    Here's the new version.

    Supports the top post but with the following now:

    Heals at 3 second rate 5% for HP/SP

    MUST be sitting down in order heal your HP/SP or to burn the fire out.

    NOTE: Once you activate the fire, walk away and come back to it, it adds the timer on the 6x6 cell radius to your character. Could be a way for you to "leave" to go tell your friends about your campfire! xD

     

    Version 2.0 : With Healing feature
     

    prontera,151,159,4    script    Firewood#1    89,6,6,{
    for ( .n = 1; .n <= $@MaxDups; .n++ ) {
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 0) {
        callsub OnStartFire;
    end;
    } else
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 1) {
        callsub OnEndFire;
    end;
    }
    }
     
    OnStartFire:
            mes "[Firewood]";
            switch(select("Light firewood","Exit"))
            {
                
                case 1:
                if ( countitem(7035) >= 1 )
            {
                delitem 7035, 1;
                mes "Matchstick consumed. Lighting fire.";
                $@Lit[.n] = 1;
                donpcevent strnpcinfo(0)+"::OnEnableFire";
                close;
            } else
                mes "Firewood needs 1 Matchstick to be lit.";
                close;
     
                case 2:
                mes "Fire was not lit.";
                close;
            }
     
    OnEndFire:
    mes "[Firewood]";
    if ($@Lit[.n] && !issit() ) {
        mes "Please proceed to sitting down to heal your HP/SP or to put out the fire.";
        close;
    }
            switch(select("Put out firewood","Exit"))
            {
                
                case 1:
                $@Lit[.n] = 0;
                dispbottom "You put out the fire.";
                donpcevent strnpcinfo(0)+"::OnDisableFire";
                close;
                
                case 2:
                close;
            }
     
    OnEnableFire:
        initnpctimer;
        end;
     
    OnDisableFire:
        stopnpctimer;
        end;
     
    OnTimer500:
        specialeffect 25;
        initnpctimer;
        end;
     
    OnAtFireLoc:
    for ( .@i = 1; .@i <= 3; .@i++ ) {
        mes ""+$@FireMap$[.@i]+","+$@FireX[.@i]+","+$@FireY[.@i]+".";
    }
        close;
     
    OnInit:
    $@MaxRange = 6;
    // Change this to how many duplicate fire's you make.
        $@MaxDups = 3;
    // Command '@fireloc' to view the locations of your fires.
    // For players to use this command, just get rid of the 99 requirement below.
        bindatcmd "fireloc",strnpcinfo(0)+"::OnAtFireLoc",99;
     
     for ( .@i = 1; .@i <= $@MaxDups; .@i++ ) {
    getmapxy .@mapname$[.@i],.@mapx[.@i],.@mapy[.@i], 1, "Firewood#"+.@i+"";
        $@FireMap$[.@i] = .@mapname$[.@i];
        $@FireX[.@i] = .@mapx[.@i];
        $@FireY[.@i] = .@mapy[.@i];
    }
    end;
        OnTouch:
        while ( $@Lit[.n] || !$@Lit[.n] ) {
    for ( .n = 1; .n <= $@MaxDups; .n++ ) {
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 0) {
        callsub OnCheckFail;
    end;
    } else
        if ( strnpcinfo(0) == "Firewood#"+.n+"" && $@Lit[.n] == 1) {
        callsub OnCheckSuccess;
    end;
    }
    }
    }
    OnCheckFail:
    end;
     
    OnCheckSuccess:
    if ( Hp == MaxHp && Sp == MaxSp ) {
        end;
    }
    if ( !issit() ) {
        addtimer 3000,strnpcinfo(0)+"::OnTouch";
        end;
    }
            percentheal 5,5; // 5% HP / 5% SP healing
            addtimer 3000,strnpcinfo(0)+"::OnTouch";
     
            if ( Hp == MaxHp && Sp == MaxSp ) {
            dispbottom "Health fully recovered.";
            end;
    }
            end;
    }
    
    

  5.  

    Checks whether lit or not, consumes (1) Matchstick. A good idea I thought about is while its lit get the area around the fire, maybe 6x6, and any players that are near the bonfire will regenerate SP/HP relatively quickly? Just my idea behind the fires.

    To make it more interesting, we can also make it heal players faster (or heal more) who are sitting in the 6x6 area.

     

    Lol my fishing script requires the player to be sitting in order to use the feature.

     

     

    I'll do that let's see how this turns out :D I'll post the new one underneath this post.

     

    If they want the fires to be all over the world of ragnarok I wonder how I will be able to get the mapxy coordinates of the duplicated npc... Hmmm making 1 of the fires with the feature might be easy but for a lot of them I might have to pull something different (Dastgir update your duplicatenpc command... xD)!


  6. Here you go.

    prontera,151,159,4    script    Firewood    89,{
    mes "[Fire]";
        if ( !.lit )
        {
            switch(select("Light firewood","Exit"))
            {
                
                case 1:
                if ( countitem(7035) >= 1 )
            {
                delitem 7035, 1;
                mes "Matchstick consumed. Lighting fire.";
                .lit = 1;
                donpcevent ("Firewood")+"::OnEnableFire";
                close;
            } else
                mes "Firewood needs 1 Matchstick to be lit.";
                close;
     
                case 2:
                mes "Fire was not lit.";
                close;
            }
    } else
     
        if ( .lit )
            switch(select("Put out firewood","Exit"))
            {
                
                case 1:
                .lit= 0;
                dispbottom "You put out the fire.";
                stopnpctimer;
                close;
                
                case 2:
                close;
            }
    OnEnableFire:
        initnpctimer;
        end;
     
    OnTimer500:
        specialeffect 25;
        initnpctimer;
        end;
        }
    


    Checks whether lit or not, consumes (1) Matchstick. A good idea I thought about is while its lit get the area around the fire, maybe 6x6, and any players that are near the bonfire will regenerate SP/HP relatively quickly? Just my idea behind the fires.

  7. thumb-8e0fedcd36cbbf9ab0e1c02b754b89c3-screenhercules131.jpg

    File Name: [Auto-Event] Pluckin' a Chicken

    File Submitter: Aeromesi

    File Submitted: 12 Oct 2016

    File Category: Events & Games

     

    [Auto Event] Pluckin' a Chicken

     

    What exactly is this event Pluckin' a Chicken?

     

    Well...

     

    Details:

    // Automated Event

    • Winner gets double the amount of cash points based on how many they clicked/plucked.
    • If any players are in the 11x11 square they will be moved somewhere safe to participate in the event.
    • Player who wins, gets item, Zeny, and Double Cash Points based on how many clicks they did to win.
    • Randomized each time, one time you could have to pluck the chicken 100 times, or 350 times, never know.
    • Players who lose STILL WIN! When the event is disabled go to Pluckins (wherever you put him)and he will exchange your Plucks on the Chicken you got for the exact same amount of Cash Points.
    • If the next hour goes and no one has completed the Pluckin' a Chicken event, it won't start again until it's finished.
    • 1 hour timer, once you start your server, in 1 hour the event will begin, once completed, another hour and the event will start.
    • When WoE FE:SE is in session ( agitcheck / agitcheck2 ) the event will not start, to prevent too much going on at once.
       
      Enjoy Hercules ^^

     

    Click here to download this file

    Forgot to mention, based on x amount of clicks a player gets, the speed eventually increases on Mr.Pluckins in a set of 5. Will include that in an update as well as an announcement that he's getting "heated" causing him to move faster. Enjoy for now. =)


  8. thumb-75c1f0c58426b81e8d9b0836f0a42fa7-screenhercules124.jpg

    File Name: [Auto-Event] Satan Morocc Invasion

    File Submitter: Aeromesi

    File Submitted: 10 Oct 2016

    File Category: Events & Games

     

    [Auto-Event] Satan Morocc Invasion

     

    Based on a request by Will Su.

     

    Satan Morocc invades every hour, if the players haven't killed Satan Morocc in that timeframe by the next hour he won't spawn again. Player who kills Satan Morocc gets Cash Points (change to whatever currency you use or simply switch to item like Coin)

     

     

    Enjoy :)

     

    Click here to download this file

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.