Jump to content

w0wZukuBg

Members
  • Posts

    85
  • Joined

  • Days Won

    30

Posts posted by w0wZukuBg

  1. 14 hours ago, Cydh said:

    Dullahan is headless, that's why when it opens the helm cover you found nothing -not his head behind it- but just simply darkness

    I just attached an old sprite. These cunning eyes were always
    Because of them, he became my favorite pet ^^)

    Spoiler

    4176.gifdTe2EDk.gif

     

  2. gvv33eU.png

    File Name:
    w0w_custom_collection
    File Submitter: w0wZukuBg
    File Submitted: 24 June 2018
    File Category: Sprites & Palettes
    Download Link: Click here to download

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    butterfly_wings [x5 new]
    Look at the old butterfly wing and at it. Now again on the old and on the new.
    Why is my butterfly wing looks like a wing, not a human ear? = D
    I would be happy if you would prefer my work for replacement.

    kVOkZVT.png

    KXsl4Pe.png

    battle_manuals [x5 new]
    Recolor to diversify the rates.

    Frskuhn.png

    5sh4Etf.png

    bubble_gums [x5 new]
    Recolor to diversify the rates.

    4arJSQs.png

    WrNqo3h.png

    bullets [x6 new]
    Just additional sprites of bullets based on standard.
    Fire, Water, Wind, Earth, Poison and Shadow property.

    6V9LT80.png

    YPRbMLT.png

    card_sprites [x3 new]
    Now rare cards will really decorate your inventory ?
    1 - for miniboss cards
    2 - for yellow MVP cards
    3 - for red MVP cards

    SY5fVoj.png

    3beUinH.png

    w0w_items [x6 new]
    1 - Armor Charm [ID 2656] - make it's own sprite instead of the Gravity...
    2 - Very Old Card Album [ID custom] - just an idea, make an item sprite according to second collection picture.
    3 - Animal Detector [ID custom] - the idea came from the game BG&E.
    4 - Venatu Doll [ID custom] - it can be an item for pet/mercenary activation or just a doll.
    5 - Camera [ID custom] - the file includes small ingame illustration of camera.
    6 - Condenced Blue Potion [ID custom] - nuff said ~

    ckpecjM.png

    zlqfgIT.png

    gemmed_sallet [new]
    Could not wait any longer, just add a ingame hat animation
    made by myself instead of Gravity :3

    pjgOMwv.gif

    dullahan [white eyes]
    In one of the client updates the sprite Dullahan was changed. Since then, his eyes
    have disappeared. Gravity did not comment on what had happened. Very much I
    ask to check up this monster on your server and to replace a sprite in case of
    need.

    DULLAHAN.gif>>>>>MiiO9Sw.gif

    w0w_cardbmp [x6 new]
    You can use this art work for any purpose, for example, you can make it a card on your server.

    XLgSVR6.png

    sl_icons [x2 new]
    Two new icons for SL_GUNNER and SL_NINJA skills
    Since the icons use Chinese characters, then
    for the SL_GUNNER, the 枪 means a gun
    and for the SL_NINJA I left the character out of skill Final Strike

    Ad9ns1T.gif.•°'°•.s2NcnhJ.gif

    skating_grf [new]
    Just added edited santa costume sprite for imitation of skating (based on 여름 summer clothes sprite v1).
    You may see the sample of skating in my custom map Xpalace preview: Link here

    Fy3N1bj.gif

    blood_tears [new]
    My first attempt to make a custom version of any weapon. The basis was taken Blood Tears [id 1271].

    jlzCJR2.gif.•°'°•.fBuLDhP.gif

    ~ Don't claim my or Gravity's work as yours and etc ~

    • Upvote 3
    • Love 5
    • MVP 1
  3. Let me show you my next map!) Just a map in which I managed to accommodate all
    the cities of Rune-Midgards to 13.2 episodes and even Kunlun. You will never guess
    why this location was created (it was just for some kind of Fast Travel...) And I
    started to draw this even before the game Cuphead appears! Now I think,
    what if I combine this idea with my map ...

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    rm_mini
    h6mfoDY.png

    Spoiler

     

    The outlines of the world are quite equivalent to the original map presented
    in most sources. The map requires an airy atmosphere because of Kunlun (you can see it at 08:16 in the video)
    and Juno. Despite a large number of objects, nothing slows the FPS,
    unless of course tilting the camera by 90 degrees, like this:

    595jwE6.png

    The clouds are added on top of the picture just for the w0w effect,
    in fact they are at the bottom and above just a blue background = )
    A lot of objects are available for moving, for example, you can 
    go to the ships. Also, almost all types of land near the water
    are covered by hill objects to hide the difference between
    the marine and earth texture.

    0irWXHm.png

    By the way, it was pretty fun to bring the big-sized Morroc into this world.
    If he were really SO big, he would cause more cause for concern hahaa ~

    WoDSwqR.png

    Please rate it ? if the map is good enough

    • Upvote 4
    • Love 1
    • Like 1
  4. Hello and hi!) I show you the next half-ready project) Now I tried to update
    the appearance of the locations around the Prontera, as it were in episode 16.
    Bad or not - you decide. This project is the subpart of a larger update of
    locations, of which I will report later.

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    All models of trees, bushes, and bridges are replaced by new ones from new
    episodes. A custom texture is created that differs from the new standard
    with a higher brightness and which is more in tune with the old texture.
    And everywhere were planted hundreds of all kinds of flowers, which only
    could find in the models. Now I can not imagine the field without this small update ¬3¬

    SnsMXYO.png

    Old - standart texture
    Test - the texture received in the process of improvement
    New - the best result that could be identified among dozens variants of brightness and intencity changing by 1% ^O^

    At the moment, half of the Prontera maps are ready, and the combined textures of the locations of Morroc and Prontera are made.

    • Upvote 2
    • Love 3
    • Like 1
  5. I just noticed that I messed up everything. According to the big images, a simple
    «Guitar» is actually classical. The «Loner's Guitar» is acoustic, and I added
    ukulele samples to this, because the item looked very small ? I'll fix it all.

    10 hours ago, Vykimo said:

    A good application could be to add a skill "solo" that play your sound depending on what kind of weapon the clown is wearing. You could add whatever status effect (heal zone or else).

    This will be the best option, but I don't know how to correlate 
    the length of the sound fragment with the delay of skill... To avoid spamming big fragments.

  6. There is one game - Jedi Knight: Jedi Academy - in which you run and
    fight, being a Jedi. There was a good multiplayer for team competitions
    and death matches. Also, players themselves could create locations for
    competitive modes. One of them was loved by me most of all,
    thanks to a unique map and an interesting realization of different tricks.
    Now I don't have any original files of this map for JK, no screenshots,
    but the idea is alive!

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    crystal

    cZDKdrQ.png

    Spoiler

     

    The rules were slightly modified, here is the latest version:
    In this mode, one of the commands is located outside the bunker and must
    capture it by breaking the crystal which is located on the 4th floor in
    a special room. The task of the second team is not to do this and to
    score 25 points, killing 25 players of the opposing team. If both these
    conditions do not occur, then the team that kills more players from the
    opposing team wins. For the destruction of the crystal or keeping it for
    the rest of the time, the teams receive 25 extra points.

    There are as many as 4 ways to get inside.

    Spoiler

    1) The first is to open the central entrance from the inside. You can do
    this by activating the lever, which will open the passage for 10
    seconds. Usually this is used in the first seconds of the game for fun
    or for full control of the territory, if the bunker is safe (inside
    there must always be one of the team players to quickly open the door
    for retreat). This is the fastest way to get to the 1st floor.

    dlwLPDI.png

    2) The second is to open the main door leading to the guest hall of the
    bunker. To do this, you need to activate two devices after spending 5
    seconds. In this case, the enemy team can prevent you, attacking
    remotely from the nearest balcony and knocking down the timer (the door
    can be closed again from either side by activating both devices and
    spending 25 seconds).

    A9jpNqp.png

    3) The third is to get into the corridors of communication and sewerage
    through the destroyed foundation. This way you can also get to the 1st
    floor and it is always open.

    UI9sBWy.png>>>>>HjlVDd7.png

    4) The fourth is to climb the outer southern wall of the bunker. There is a
    reserve entrance, which will not be closed after opening, because the
    door device was broken in order to prevent diversions, because this is
    the closest door to the room with the crystal from the outside. The
    attacking team must activate the detonator nearby and move to a safe
    place, otherwise they will be killed by an explosion.

    jx8LJpf.png

    There are also two additional passes (but these are optional for the
    game and can be disabled at will).

    Spoiler

    1) The first is a ladder leading from the guest room to the upper floor of
    the bunker. To get to it, just activate the door unit for 5 seconds. The
    door can also be closed from either side after spending 5 seconds.

    o2QQ1SY.png

    2) The second is a sabotage portal elevator right into the room with the
    crystal. You can get into the secret room with the portal through the
    side door at the beginning of the stairs. To do this, you must type
    a password from the numbers, which changes every new game.
    You can find out the password on one of the tables
    in the laboratory located in the guest room.

    og6ymja.png>>>>>q5ZrCkK.png

    Traps and Tricks:

    Spoiler

    1) All doors with the device except the emergency exit on the top floor
    can be opened (after spending 5 seconds), and close (spending 25
    seconds). Dual devices can be activated by 2 players at a time.

    2htJx8x.png

    2) In the laboratory, you can activate a deadly electric shock
    throughout the passage once every three seconds. In this case, the
    impact does not affect those who have time to go into the adjacent
    corridor leading to the balcony. The device works with a slight delay
    after pressing, so that you can not instantly kill everyone in the
    passage. Thus, attacking players must run from the balcony to the
    balcony, trying to calculate the time after the last blow.

    WIt2nmw.png

    3) In the sewers there are monsters-defenders loyal to the enemy team in
    small numbers, which creates some obstacles on the way.

    qL8ku49.png

    4) Next to the room with the crystal are mounted combat turrets,
    attacking the passing players of the enemy team. It's enough just to
    activate them at the beginning of the new game (you could see it on my
    previous map - Arena R4).

    7PEIFKQ.png

    5) All obstacles through which you can logically justify a long-range
    attack - are shot through.

    S5BqK2M.png

    P>S> When creating, only original textures and models were used.

    nxI1UEQ.png

    yrX3m0g.png

    Please rate it ? if the map is good enough

    • Upvote 2
  7. Sample Music Project

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    Hello and hi!) My dear colleagues!) Honestly, I do not know if this is the first project
    of its kind, but it reached the point when I have something to show.
    I have noticed for a long time that there are enough musical instruments in RO,
    but there is no variability and the bards are rigidly driven into the framework
    of certain song skills. And what if, in the breaks between the endless standing
    in a party, casting «A Poem of Bragi», would they want to slightly improvise
    on favorite instruments?

    ~~~ About the SMP : ~~~

    At the moment the "solo" command only calls up a certain sound sample, animation
    of the play on the instrument and emotion, which can be turned off together
    with the sound effects in the settings. It is collected exclusively for fun.
    For example, playing a show in a RO or conducting a meeting,
    you can create a background atmosphere.
    (!) All samples are taken from videos that demonstrate the sound of musical instruments on YouTube (!)
    The project consists of collected clean samples of musical instruments specially
    selected for the style of each instrument, so they can be easily distinguished
    from each other, even if it's another guitar. The length of the samples varies
    from 3 to 26 seconds, they are all collected in .wav format in good quality.
    (video quality is quite low, sorry)

    ~~~ A few statistics that are at the moment : ~~~

    +) 821 ~1000 code lines for «@ solo» command activating samples that everyone can hear within the screen
    +) 282 355 music samples with 2753 3558 sec (~1 hour) of samples duration in total
    +) total weight about 500 mb in grf

    [In Video] 00:05 - 1919.gifBass Guitar - 46 samples x 515 sec
    [In Video] 00:58 - 1907.gifGuitar - 17 samples x 155 sec - 21 samples x 274 sec
    [In Video] 01:47 - 1914.gifBurning Passion Guitar - 13 samples x 124 sec
    [In Video] 02:32 - 1915.gifLoner's Guitar - 9 samples x 99 sec17 samples x 155 sec
    [In Video] 03:15 - 1917.gifGentle Breeze Guitar - 15 samples x 135 sec
    [In Video] 04:13 - 1916.gifGreen Acre Guitar - 14 samples x 159 sec
    [In Video] 04:45 - 1905.gifLute/Oriental Lute - 11 samples x 119 sec
    [In Video] 05:29 - 1903.gifMandolin - 11 samples x 88 sec
    [In Video] 06:26 - 1913.gifElectric Guitar - 12 samples x 133 sec
    [In Video] 07:38 - 1920.gifBerserk Guitar - 17 samples x 147 sec
    [In Video] 08:42 - 1925.gifCello - 20 samples x 210 sec
    [In Video] 09:48 - 1901.gifViolin - 26 samples x 211 sec
    [In Video] 10:52 - 1911.gifGumoongoh - 21 samples x 197 sec
    [In Video] 12:09 - 1909.gifHarp, Harp of Nepenthes - 21 samples x 221 sec
    [In Video] 13:15 - 1930.gifGreen Whistle - 18 samples x 129 sec
    [In Video] None1934.gifContrabass - 11 samples x 111 sec16 samples x 169 sec
    [In Video] None1935.gif Oz's New Ukulele - 13 samples x 131 sec
    [In Video] None1944 Hippie Guitar - 30 samples x 295 sec
    [In Video] None32100 Brute Guitar - 13 samples x 146 sec

    ~~~ About the script part : ~~~
    The script was tested on the emulator eAthena, because I was stuck in 2010.
    (There should be no difference with rA in the case of this command, please report if any)

    In src/common/mmo.hpp :

    (w0w!) find these two lines
    #define WEDDING_RING_M 2634
    #define WEDDING_RING_F 2635
    
    (w0w!) add after the variables
    // @solo
    #define GUITAR 1907
    #define GUITAR2 1908
    #define ELE_GUITAR 1913 
    #define BER_GUITAR 1920
    #define BAS_GUITAR 1919
    #define FIRE_GUITAR 1914
    #define WATER_GUITAR 1915
    #define EARTH_GUITAR 1916
    #define WIND_GUITAR 1917
    #define CELLO 1925
    #define GUMOONGOH  1911
    #define GUMOONGOH2  1912
    #define HARP  1909
    #define HARP2  1910
    #define HARP_OF_NEP  1926
    #define LUTE  1905
    #define LUTE2  1906
    #define ORI_LUTE  1918
    #define ORI_LUTE2  1922
    #define MANDOLIN  1903
    #define MANDOLIN2  1904
    #define VIOLIN  1901
    #define VIOLIN2  1902
    #define GREEN_WHISTLE  1930
    #define CONTRABASS  1934
    #define OZ_UKULELE  1935
    #define HIPPIE_GUITAR  1944
    #define BRUTE_GUITAR  32100

    In src/map/atcommand.cpp :

    ACMD_FUNC(solo)
    {
    	int nameid;
    	struct item_data* id;
    	if(sd->weapontype1==W_MUSICAL) {
    // Guitar
    		if(pc_isequipped(sd, GUITAR) || pc_isequipped(sd, GUITAR2)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>21){
    			clif_displaymessage(fd, "usage: @solo 1-21");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "gui01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "gui02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "gui03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "gui04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "gui05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "gui06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "gui07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "gui08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "gui09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "gui10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "gui11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "gui12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "gui13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "gui14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "gui15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "gui16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "gui17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "gui18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "gui19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "gui20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "gui21.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Electric Guitar
    		else if(pc_isequipped(sd, ELE_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>12){
    			clif_displaymessage(fd, "usage: @solo 1-12");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "ele01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "ele02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "ele03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "ele04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "ele05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "ele06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "ele07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "ele08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "ele09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "ele10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "ele11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "ele12.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Berserk Guitar
    		else if(pc_isequipped(sd, BER_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>17){
    			clif_displaymessage(fd, "usage: @solo 1-17");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "ber01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "ber02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "ber03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "ber04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "ber05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "ber06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "ber07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "ber08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "ber09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "ber10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "ber11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "ber12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "ber13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "ber14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "ber15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "ber16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "ber17.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Bass Guitar
    		else if(pc_isequipped(sd, BAS_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>46){
    			clif_displaymessage(fd, "usage: @solo 1-46");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "bas01.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "bas02.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "bas03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "bas04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "bas05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "bas06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "bas07.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "bas08.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "bas09.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "bas10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "bas11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "bas12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "bas13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "bas14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "bas15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "bas16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "bas17.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "bas18.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "bas19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "bas20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "bas21.wav", 0, AREA);
    	} else if ( atoi(message) == 22 ) {
    		clif_soundeffectall(&sd->bl, "bas22.wav", 0, AREA);
    	} else if ( atoi(message) == 23 ) {
    		clif_soundeffectall(&sd->bl, "bas23.wav", 0, AREA);
    	} else if ( atoi(message) == 24 ) {
    		clif_soundeffectall(&sd->bl, "bas24.wav", 0, AREA);
    	} else if ( atoi(message) == 25 ) {
    		clif_soundeffectall(&sd->bl, "bas25.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas25.wav", 0, AREA);
    	} else if ( atoi(message) == 26 ) {
    		clif_soundeffectall(&sd->bl, "bas26.wav", 0, AREA);
    	} else if ( atoi(message) == 27 ) {
    		clif_soundeffectall(&sd->bl, "bas27.wav", 0, AREA);
    	} else if ( atoi(message) == 28 ) {
    		clif_soundeffectall(&sd->bl, "bas28.wav", 0, AREA);
    	} else if ( atoi(message) == 29 ) {
    		clif_soundeffectall(&sd->bl, "bas29.wav", 0, AREA);
    	} else if ( atoi(message) == 30 ) {
    		clif_soundeffectall(&sd->bl, "bas30.wav", 0, AREA);
    	} else if ( atoi(message) == 31 ) {
    		clif_soundeffectall(&sd->bl, "bas31.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "bas31.wav", 0, AREA);
    	} else if ( atoi(message) == 32 ) {
    		clif_soundeffectall(&sd->bl, "bas32.wav", 0, AREA);
    	} else if ( atoi(message) == 33 ) {
    		clif_soundeffectall(&sd->bl, "bas33.wav", 0, AREA);
    	} else if ( atoi(message) == 34 ) {
    		clif_soundeffectall(&sd->bl, "bas34.wav", 0, AREA);
    	} else if ( atoi(message) == 35 ) {
    		clif_soundeffectall(&sd->bl, "bas35.wav", 0, AREA);
    	} else if ( atoi(message) == 36 ) {
    		clif_soundeffectall(&sd->bl, "bas36.wav", 0, AREA);
    	} else if ( atoi(message) == 37 ) {
    		clif_soundeffectall(&sd->bl, "bas37.wav", 0, AREA);
    	} else if ( atoi(message) == 38 ) {
    		clif_soundeffectall(&sd->bl, "bas38.wav", 0, AREA);
    	} else if ( atoi(message) == 39 ) {
    		clif_soundeffectall(&sd->bl, "bas39.wav", 0, AREA);
    	} else if ( atoi(message) == 40 ) {
    		clif_soundeffectall(&sd->bl, "bas40.wav", 0, AREA);
    	} else if ( atoi(message) == 41 ) {
    		clif_soundeffectall(&sd->bl, "bas41.wav", 0, AREA);
    	} else if ( atoi(message) == 42 ) {
    		clif_soundeffectall(&sd->bl, "bas42.wav", 0, AREA);
    	} else if ( atoi(message) == 43 ) {
    		clif_soundeffectall(&sd->bl, "bas43.wav", 0, AREA);
    	} else if ( atoi(message) == 44 ) {
    		clif_soundeffectall(&sd->bl, "bas44.wav", 0, AREA);
    	} else if ( atoi(message) == 45 ) {
    		clif_soundeffectall(&sd->bl, "bas45.wav", 0, AREA);
    	} else if ( atoi(message) == 46 ) {
    		clif_soundeffectall(&sd->bl, "bas46.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Burning Passion Guitar
    		else if(pc_isequipped(sd, FIRE_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>13){
    			clif_displaymessage(fd, "usage: @solo 1-13");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "pas01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "pas02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "pas03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "pas04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "pas05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "pas06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "pas07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "pas08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "pas09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "pas10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "pas11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "pas12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "pas13.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Loner's Guitar
    		else if(pc_isequipped(sd, WATER_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>17){
    			clif_displaymessage(fd, "usage: @solo 1-17");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "lon01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "lon02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "lon03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "lon04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "lon05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "lon06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "lon07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "lon08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "lon09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "lon10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "lon11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "lon12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "lon13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "lon14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "lon15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "lon16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "lon17.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Green Acre Guitar
    		else if(pc_isequipped(sd, EARTH_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>14){
    			clif_displaymessage(fd, "usage: @solo 1-14");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "acr01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "acr02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "acr03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "acr04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "acr05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "acr06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "acr07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "acr08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "acr09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "acr10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "acr11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "acr12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "acr13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "acr14.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Gentle Breeze Guitar
    		else if(pc_isequipped(sd, WIND_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>15){
    			clif_displaymessage(fd, "usage: @solo 1-15");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "bre01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "bre02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "bre03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "bre04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "bre05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "bre06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "bre07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "bre08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "bre09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "bre10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "bre11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "bre12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "bre13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "bre14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "bre15.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Cello
    		else if(pc_isequipped(sd, CELLO)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>20){
    			clif_displaymessage(fd, "usage: @solo 1-20");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "cel01.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "cel02.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "cel03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "cel04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "cel05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "cel06.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "cel07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "cel08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "cel09.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "cel10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "cel11.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "cel12.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "cel13.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "cel14.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "cel15.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "cel16.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "cel17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "cel18.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "cel19.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "cel19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "cel20.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Gumoongoh
    		else if(pc_isequipped(sd, GUMOONGOH) || pc_isequipped(sd, GUMOONGOH2)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>21){
    			clif_displaymessage(fd, "usage: @solo 1-21");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "geo01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "geo02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "geo03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "geo04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "geo05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "geo06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "geo07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "geo08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "geo09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "geo10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "geo11.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "geo12.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "geo13.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "geo14.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "geo15.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "geo16.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "geo17.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "geo18.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "geo19.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "geo20.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "geo21.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "geo21.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Harp
    		else if(pc_isequipped(sd, HARP) || pc_isequipped(sd, HARP2) || pc_isequipped(sd, HARP_OF_NEP)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>21){
    			clif_displaymessage(fd, "usage: @solo 1-21");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "har01.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "har02.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "har03.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "har04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "har05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "har06.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "har07.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "har08.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "har09.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "har10.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "har11.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "har12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "har13.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "har14.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "har15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "har16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "har17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "har18.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "har19.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "har20.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "har21.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "har21.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Lute
    		else if(pc_isequipped(sd, LUTE) || pc_isequipped(sd, LUTE2) || pc_isequipped(sd, ORI_LUTE) || pc_isequipped(sd, ORI_LUTE2)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>11){
    			clif_displaymessage(fd, "usage: @solo 1-11");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "lut01.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "lut02.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "lut03.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "lut04.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "lut05.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "lut06.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "lut07.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "lut08.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "lut09.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "lut10.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "lut11.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "lut11.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Mandolin
    		else if(pc_isequipped(sd, MANDOLIN) || pc_isequipped(sd, MANDOLIN2)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>11){
    			clif_displaymessage(fd, "usage: @solo 1-11");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "man01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "man02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "man03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "man04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "man05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "man06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "man07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "man08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "man09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "man10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "man11.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Violin
    		else if(pc_isequipped(sd, VIOLIN) || pc_isequipped(sd, VIOLIN2)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>26){
    			clif_displaymessage(fd, "usage: @solo 1-26");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "vio01.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "vio02.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "vio03.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "vio04.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "vio05.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "vio06.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "vio07.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "vio08.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "vio09.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "vio10.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "vio11.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "vio12.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "vio13.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "vio14.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "vio15.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "vio16.wav", 0, AREA);
    		clif_soundeffectall(&sd->bl, "vio16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "vio17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "vio18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "vio19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "vio20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "vio21.wav", 0, AREA);
    	} else if ( atoi(message) == 22 ) {
    		clif_soundeffectall(&sd->bl, "vio22.wav", 0, AREA);
    	} else if ( atoi(message) == 23 ) {
    		clif_soundeffectall(&sd->bl, "vio23.wav", 0, AREA);
    	} else if ( atoi(message) == 24 ) {
    		clif_soundeffectall(&sd->bl, "vio24.wav", 0, AREA);
    	} else if ( atoi(message) == 25 ) {
    		clif_soundeffectall(&sd->bl, "vio25.wav", 0, AREA);
    	} else if ( atoi(message) == 26 ) {
    		clif_soundeffectall(&sd->bl, "vio26.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Green Whistle
    		else if(pc_isequipped(sd, GREEN_WHISTLE)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>18){
    			clif_displaymessage(fd, "usage: @solo 1-18");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "gre01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "gre02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "gre03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "gre04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "gre05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "gre06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "gre07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "gre08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "gre09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "gre10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "gre11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "gre12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "gre13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "gre14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "gre15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "gre16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "gre17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "gre18.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Contrabass
    		else if(pc_isequipped(sd, CONTRABASS)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>16){
    			clif_displaymessage(fd, "usage: @solo 1-16");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "con01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "con02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "con03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "con04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "con05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "con06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "con07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "con08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "con09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "con10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "con11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "con12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "con13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "con14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "con15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "con16.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Oz's New Ukulele
    		else if(pc_isequipped(sd, OZ_UKULELE)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>13){
    			clif_displaymessage(fd, "usage: @solo 1-13");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "ozs01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "ozs02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "ozs03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "ozs04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "ozs05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "ozs06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "ozs07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "ozs08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "ozs09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "ozs10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "ozs11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "ozs12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "ozs13.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Hippie Guitar
    		else if(pc_isequipped(sd, HIPPIE_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>30){
    			clif_displaymessage(fd, "usage: @solo 1-30");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "hip01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "hip02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "hip03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "hip04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "hip05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "hip06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "hip07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "hip08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "hip09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "hip10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "hip11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "hip12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "hip13.wav", 0, AREA);
    	} else if ( atoi(message) == 14 ) {
    		clif_soundeffectall(&sd->bl, "hip14.wav", 0, AREA);
    	} else if ( atoi(message) == 15 ) {
    		clif_soundeffectall(&sd->bl, "hip15.wav", 0, AREA);
    	} else if ( atoi(message) == 16 ) {
    		clif_soundeffectall(&sd->bl, "hip16.wav", 0, AREA);
    	} else if ( atoi(message) == 17 ) {
    		clif_soundeffectall(&sd->bl, "hip17.wav", 0, AREA);
    	} else if ( atoi(message) == 18 ) {
    		clif_soundeffectall(&sd->bl, "hip18.wav", 0, AREA);
    	} else if ( atoi(message) == 19 ) {
    		clif_soundeffectall(&sd->bl, "hip19.wav", 0, AREA);
    	} else if ( atoi(message) == 20 ) {
    		clif_soundeffectall(&sd->bl, "hip20.wav", 0, AREA);
    	} else if ( atoi(message) == 21 ) {
    		clif_soundeffectall(&sd->bl, "hip21.wav", 0, AREA);
    	} else if ( atoi(message) == 22 ) {
    		clif_soundeffectall(&sd->bl, "hip22.wav", 0, AREA);
    	} else if ( atoi(message) == 23 ) {
    		clif_soundeffectall(&sd->bl, "hip23.wav", 0, AREA);
    	} else if ( atoi(message) == 24 ) {
    		clif_soundeffectall(&sd->bl, "hip24.wav", 0, AREA);
    	} else if ( atoi(message) == 25 ) {
    		clif_soundeffectall(&sd->bl, "hip25.wav", 0, AREA);
    	} else if ( atoi(message) == 26 ) {
    		clif_soundeffectall(&sd->bl, "hip26.wav", 0, AREA);
    	} else if ( atoi(message) == 27 ) {
    		clif_soundeffectall(&sd->bl, "hip27.wav", 0, AREA);
    	} else if ( atoi(message) == 28 ) {
    		clif_soundeffectall(&sd->bl, "hip28.wav", 0, AREA);
    	} else if ( atoi(message) == 29 ) {
    		clif_soundeffectall(&sd->bl, "hip29.wav", 0, AREA);
    	} else if ( atoi(message) == 30 ) {
    		clif_soundeffectall(&sd->bl, "hip30.wav", 0, AREA);
    	}
    		return 0;
    		}
    // Brute Guitar
    		else if(pc_isequipped(sd, BRUTE_GUITAR)) {
    			if(!message || !*message || atoi(message)<1 || atoi(message)>13){
    			clif_displaymessage(fd, "usage: @solo 1-13");
    			return -1;
    		}
    		clif_emotion(&sd->bl, E_HO);
    		clif_skill_nodamage(&sd->bl,&sd->bl,317,-1,1);
    	if ( atoi(message) == 1 ) {
    		clif_soundeffectall(&sd->bl, "bru01.wav", 0, AREA);
    	} else if ( atoi(message) == 2 ) {
    		clif_soundeffectall(&sd->bl, "bru02.wav", 0, AREA);
    	} else if ( atoi(message) == 3 ) {
    		clif_soundeffectall(&sd->bl, "bru03.wav", 0, AREA);
    	} else if ( atoi(message) == 4 ) {
    		clif_soundeffectall(&sd->bl, "bru04.wav", 0, AREA);
    	} else if ( atoi(message) == 5 ) {
    		clif_soundeffectall(&sd->bl, "bru05.wav", 0, AREA);
    	} else if ( atoi(message) == 6 ) {
    		clif_soundeffectall(&sd->bl, "bru06.wav", 0, AREA);
    	} else if ( atoi(message) == 7 ) {
    		clif_soundeffectall(&sd->bl, "bru07.wav", 0, AREA);
    	} else if ( atoi(message) == 8 ) {
    		clif_soundeffectall(&sd->bl, "bru08.wav", 0, AREA);
    	} else if ( atoi(message) == 9 ) {
    		clif_soundeffectall(&sd->bl, "bru09.wav", 0, AREA);
    	} else if ( atoi(message) == 10 ) {
    		clif_soundeffectall(&sd->bl, "bru10.wav", 0, AREA);
    	} else if ( atoi(message) == 11 ) {
    		clif_soundeffectall(&sd->bl, "bru11.wav", 0, AREA);
    	} else if ( atoi(message) == 12 ) {
    		clif_soundeffectall(&sd->bl, "bru12.wav", 0, AREA);
    	} else if ( atoi(message) == 13 ) {
    		clif_soundeffectall(&sd->bl, "bru13.wav", 0, AREA);
    	}
    		return 0;
    		}
    	}
    }

    In src/map/atcommand.cpp also don't forget to add :

    	{ "solo",		   0,0,	   atcommand_solo }, // solo

    [Download Linkhttps://www.mediafire.com/folder/pwcyadczve81h/sample_music_project]

    [The map used in this video - Barcode]

    • Love 1
    • MVP 1
  8. Xpalace

    DoXWp2i.png

    File Name: xpalace
    File Submitter: w0wZukuBg
    File Submitted: 17 June 2018
    File Category: Maps & Textures
    Download Link: Click here to download

    Spoiler

     

    A small winter hall for showing performances of figure skating.
    A large number of spectator seats, the only disadvantage is that
    it is necessary to expand the area_size configuration, if it is possible
    to do it within one location (to make an additional configuration), then
    the flaw will turn into an advantage. Added a place for two trade npcs,
    so that you can have a snack during the intermission. Used non-original
    textures. The second part of the video demonstrates the performance
    of the figure skater.

    ewY4ND5.png9ADG2pl.png

    Minor changes since the video recording:
    Fixed a column at the entrance and the main chandelier shone with lights.

    95I5jLm.png.•°'°•.p5ypOY4.png

     

    • Upvote 3
  9. Sorry for the double posting, I decided to spam a little this section)))

    Always dreamed of making a bar in the world of RO. Not an ordinary one,
    there are a lot of bars, but modern with a dance floor and a disco.
    And, it happened so that now I have two bars made in this way.
    You can find my previous bar release here: Click here to go

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    barcode

    fjGmLNf.png

    Spoiler

     

    This barcode is more informal. It is no longer connected stylistically
    with any city. Holds in a larger number of players, there is even a scene
    with a microphone, where you can perform standup or something like
    that. I really like the updated dance floor and an awkward toy in a small
    pool. It was possible to make so that the player was highlighted by
    different colors. When creating, non-original textures were also used.

    WwvOTma.png.•°'°•.PIgF3UO.png.•°'°•.2SDTC7p.png

    Please rate it ? if the map is good enough

    • Love 1
  10. prtbar

    64luIuh.png

    File Name: prtbar
    File Submitter: w0wZukuBg
    File Submitted: 17 June 2018
    File Category: Maps & Textures
    Download Link: Click here to download

    Spoiler

     

    My first bar made for the new Prontera. There is more subdued lighting,
    some small details (candles, steam from mugs, a complex lightmap), custom
    textures (you may change these to another ones). The location was created
    in the autumn, so it affected its appearance. In general, it looks rather
    reserved in details and colors, a quiet place to gather for an official meeting.

    (!) You may need new Prontera, Malaya, Malangdo or Dewata staff.

    k1HJmCp.png.•°'°•.akadziV.png.•°'°•.H4BECK0.png

     

    • Love 1
  11. ein_tra01 & lhz_tra01

    qD6qetm.png.•°'°•.hMCXvXF.png

    File Name: ein_tra01 & lhz_tra01
    File Submitter: w0wZukuBg
    File Submitted: 04 June 2018
    File Category: Maps & 3D Resourses
    Download Link: Click here to download

    Spoiler

     

    Just two locations, with which you can simulate a trip by train.
    There are at least 3 stations between 2.5 cities. As a result,
    a route appeared, linking Lighthalzen, Einbroch and Einbech.
    The script is based on a flight script on an airship. You can 
    take a very small fee for the trip, in order to compete somehow 
    with teleportation services /sob

    P>S> You may need materials of NewProntera, Malaya and Malangdo.

    p8ysUc3.png4DVpEMZ.png

     

     

    • Upvote 1
    • MVP 1
  12. Just in case, I add information. Check for water level is written in map.c after lines

    /*
     * Reads from the .rsw for each map
     * Returns water height (or NO_WATER if file doesn't exist) or other
    error is encountered.
     * Assumed path for file is data/mapname.rsw
     * Credits to LittleWolf
     */

    If the .rsw file does not participate in the creation of a map_cache,
    then the water level will be absent as a class. All standard maps
    from kRO consist of green, red and purple cells only.

    On 5/29/2018 at 10:03 PM, Zell said:

    The fault came from browedit.

    P.S. I work now only with 586 rev)

  13. On 5/30/2018 at 9:44 AM, Sage said:

    The blue lines moving past the train are pretty neat. What effect is that?

    It's just Flying Side Kick 439 ? The main thing was to place the effect
    on the center of the map along the x-axis slightly forward along
    the y-axis, because the line movement depends on the degree
    of rotation from the map center.

  14. The server did not see the water level on the map. I had such a problem
    when I added only the .gat file in the WeeMapCache without the .rsw
    and .gnd files. If you use WeeMapCache, put all three location files into
    your grf with all maps and then press the GRF button in the program
    to correctly add the water level (don't forget to add resnametable.txt
    using the RNT button).

  15. On 5/27/2018 at 9:00 AM, Adel said:

    Welcome! It's always exciting to see new artists around here ?
    I'm impressed with the amount of details you've put into this map, considering how simple it looks overall. Good job~?

    Hello, thnx, in fact, I spent a lot of time on it, but I learned many things in
    BrowEdit. Really a test map in every sense ? At the very beginning, it
    looked like 4 squares of job_knt, connected together.

    On 5/27/2018 at 6:47 PM, Anacondaqq said:

    Very good work. /no1

    Hi! Thank you for your words, I wish you much happiness in return /ok

  16. Hello and Hi!) I'm new here!)
    And I just want to show you my first map made in BrowEdit ❤️
    This map was created for my server, but it was closed, because nobody played it :С
    P.S. Feel free to comment/ask or let me know what you need to correct.

    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    arena_r4

    Tufdqrm.png

    Spoiler

     

    As you can see, the location is quite simple, but it is rather advanced.
    The script consists of 1110 lines and there are attempts to play with
    the height. It's all because, in fact, the original idea was to make
    a real training center out of it. But something went wrong, and it
    became a test platform for pvp)

    adK4nZm.png.•°'°•.QiDK19g.png.•°'°•.Rpx3LTa.png

    Since the creation of the video, some corrections have been made, for
    example, instead of saws in the floor, a real column of death appeared.
    And after death in the cosmic area, now the player is not visible under the texture.

    ZwjU5wR.png.•°'°•.0aIfld8.png.•°'°•.gNukS0O.png

    Please rate it ? if the map is good enough

    • Love 2
    • MVP 2
    • Like 1
×
×
  • Create New...