w0wZukuBg

[w0w] Sample Music Project

4 posts in this topic

Posted (edited)

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]

Edited by w0wZukuBg
Released - 01.09.18

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now