Jump to content

w0wZukuBg

Members
  • Content Count

    49
  • Joined

  • Days Won

    35

Posts posted by w0wZukuBg


  1. gvv33eU.png

    File Name:
    w0w_custom_collection
    File Submitter: w0wZukuBg
    File Submitted: 24 June 2018
    File Category: Spriting & Palette
    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 ~


  2. Let me show you my next map!) Just a map in which I managed to accommodate all
    the cities of Run-Midgard 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 :D if the map is good enough


  3. 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.


  4. 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 :D if the map is good enough


  5. 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.
    (This script wasn't tested with Herc in the case of this command, but you could test samples with @ sound command I suppose)

    In src/common/mmo.h :

    (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.c :

    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.c 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]


  6. Xpalace

    DoXWp2i.png

    File Name: prtbar
    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

     


  7. 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 :D if the map is good enough


  8. 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

     


  9. 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 & Textures
    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 :bawling:

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

    p8ysUc3.png4DVpEMZ.png

     


  10. On 22.01.2014 at 0:09 AM, Olrox said:

    2 - If you want to remove global shadow in all your models:

    The RSM models has a function to get this global shadow in 3 possible ways:
    454a4a41.png

    Using an hex editor, please look for that offset and change 01 to 00, this disables global shadows in your RSM model. Alternatively, if you want, you can also ad the value 02 to enable smoth shadows in models if I remember well.

    Hello, the pictures are broken, does anyone have the information, what
    line should I change in the hex editor to remove global shadows on all models?


  11. On 26.05.2018 at 7:46 PM, luizragna said:

    What is this yellow barreier effect?

    Hello, I found this object at 1 @ rev when I looked through the list of
    of kRO locations. I liked it, it's more like an effect. This barrier on
    my map is marked by cells through which you can only shoot.
    And you can enter the zone only from the north side.

    QKaBqgC.png

    On 27.05.2018 at 11:44 AM, Ridley said:

    nice, mappers are rare nowadays :)

    Hi, I decided to support the section a little ;P


  12. Hello and Hi!) I'm new here!)
    And I just want to show you my first map made in BrowEdit <3
    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

     

     

    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 :D if the map is good enough

×
×
  • Create New...

Important Information

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