[Tutorial] Schimbarea sunetelor originale cu altele

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

17 Nov 2013, 21:41

Salut! Vreau sa va arat astazi cum sa schimbati sunetele default de la arme cu altele alese de voi.

Pasul 1: Intai includem fisierele.inc corespunzatoare in sursa:

Code: Select all

#include < amxmodx >
#include < fakemeta >
Pasul 2: Creem o variabila globala falsa:

Code: Select all

new bool:bUserHasAk47[ 33 ];
Pasul 3: Acum enumeram sunetele originale ale armei intr-o constanta:

Code: Select all

new const OriginalAK47Sounds[  ][  ] = {
	
	"weapons/ak47-1.wav",   
	"weapons/ak47-2.wav",   
	"weapons/ak47_boltpull.wav",    
	"weapons/ak47_clipin.wav",    
	"weapons/ak47_clipout.wav"
};
Pasul 4: Acum enumeram sunetele pe care vrem sa le inlocuim:

Code: Select all

new const GoldAK47_SoundList[  ][  ] = {
	
	"newAK/GoldAk47-1.wav",
	"newAK/GoldAk47-2.wav",
	"newAK/GoldAk47_boltpull.wav",
	"newAK/GoldAk47_clipin.wav",
	"newAK/GoldAk47_clipout.wav"
};
Pasul 5: La plugin_init adaugam un forward:

Code: Select all

register_forward( FM_EmitSound, "fw_EmitSounds" );
Pasul 6: Pentru ca vom folosi sunete, le vom adauga la plugin_prechace pentru a rula corespunzator:

Code: Select all

public plugin_precache( ) {
	
	static i;
	for( i = 0; i <= charsmax( GoldAK47_SoundList ); i++ )
		precache_sound( GoldAK47_SoundList[ i ] );
}
Pasul 7: Acum creem publicul cu constantele:

Code: Select all

public fw_EmitSounds( const id, const channel, const sample[  ] ) {
Pasul 8: Apoi:
| Afiseaza codul
if( is_user_alive( id ) ) { // Verificam daca user-ul este in viata:

		if( bUserHasAk47[ id ] ) { // "Aducem" variabila globala, in acest moment, adevarata

			for( new i = 0; i < sizeof GoldAK47_SoundList; i++ ) { // Stocarea sunetelor

				if( equal( sample, OriginalAK47Sounds[ i ] ) ) { // Sunetele originale "sunt chemate"...

					emit_sound( id, channel, GoldAK47_SoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );   // Aici le inlocuim cu cele pe care le vrem noi
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}
Pasul 9: In final iese:
| Afiseaza codul
#include < amxmodx >
#include < fakemeta >

#pragma semicolon 1

#define PLUGIN "[TuT] Change Sounds"
#define VERSION "0.1"

new const GoldAK47_SoundList[  ][  ] = {
	
	"newAK/GoldAk47-1.wav",
	"newAK/GoldAk47-2.wav",
	"newAK/GoldAk47_boltpull.wav",
	"newAK/GoldAk47_clipin.wav",
	"newAK/GoldAk47_clipout.wav"
};

new const OriginalAK47Sounds[  ][  ] = {
	
	"weapons/ak47-1.wav",   
	"weapons/ak47-2.wav",   
	"weapons/ak47_boltpull.wav",    
	"weapons/ak47_clipin.wav",    
	"weapons/ak47_clipout.wav"
};

new bool:bUserHasAk47[ 33 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );

}

public plugin_precache( ) {
	
	static i;
	for( i = 0; i <= charsmax( GoldAK47_SoundList ); i++ )
		precache_sound( GoldAK47_SoundList[ i ] );
}

public client_putinserver( id ) {
	
	bUserHasAk47[ id ] = false;
}

public client_disconnect( id ) {
	
	bUserHasAk47[ id ] = false;
}

public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( bUserHasAk47[ id ] ) {

			for( new i = 0; i < sizeof GoldAK47_SoundList; i++ ) {

				if( equal( sample, OriginalAK47Sounds[ i ] ) ) {

					emit_sound( id, channel, GoldAK47_SoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}
Imi cer scuze daca nu am limbajul "pawn" dezvoltat. Sunt incepator, de aceea am facut cu cuvintele mele.
Multumesc !
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
RoyalServer 2
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

17 Nov 2013, 21:44

Destul de interesant/frumos aranjat.
Un mic update/amanunt

Code: Select all

   static i;
   for( i = 0; i <= charsmax( GoldAK47_SoundList ); i++ )
N-ai de ce sa-l declari pe i in afara loopului, pentru ca il folosesti odata.

Code: Select all

Pasul 6: Pentru ca vom folosi sunete, le vom adauga la plugin_prechace pentru a rula corespunzator:
plugin_precache( ) - modifica :P

Btw, nu inteleg de ce ai folosit un bool ca sa verifici daca playerul este conectat. is_user_alive( ) verifica daca playerul este conectat/si in viata.
Retras
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

18 Nov 2013, 00:11

Code: Select all

if( bUserHasAk47[ id ] ) { // "Aducem" variabila globala, in acest moment, adevarata
Aici verifici daca booleana este adevarata nu ii atribui valoare adevarat
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

18 Nov 2013, 11:58

Bravo Ionutze !! \m/ \m/
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

18 Nov 2013, 14:33

Felicitari^ YONUT ! =D>
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
LordOfNothing
Membru, skill +1
Membru, skill +1
Posts: 387
Joined: 19 Jul 2013, 15:51
Detinator Steam: Nu
Reputatie: Restrictie PM
Has thanked: 11 times
Been thanked: 35 times

19 Nov 2013, 13:38

poti schimba sunetele folosind orpheu mult mai usor !

uite : http://www.extreamcs.com/forum/pluginur ... 22274.html
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

19 Nov 2013, 14:34

LordOfNothing wrote:poti schimba sunetele folosind orpheu mult mai usor !

uite : http://www.extreamcs.com/forum/pluginur ... 22274.html
De ce sa te complici cu Orpheu... Poate ca altii nici nu stiu ce inseamna asta :)) ! Oricum, mi se pare mult mai simplu cum am facut eu. :)
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

29 Jan 2014, 17:18

Cum fac sa schimb numai 2 sounduri, am incercat si nu merge!
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

29 Jan 2014, 20:23

adventx wrote:Cum fac sa schimb numai 2 sounduri, am incercat si nu merge!
un exemplu | Afiseaza codul
#include < amxmodx >
#include < fakemeta >

#pragma semicolon 1

#define PLUGIN "[TuT] Change Sounds"
#define VERSION "0.1"

new const GoldAK47_SoundList[  ][  ] = {
	
	"newAK/GoldAk47-1.wav",
	"newAK/GoldAk47-2.wav"/*,
	"newAK/GoldAk47_boltpull.wav",
	"newAK/GoldAk47_clipin.wav",
	"newAK/GoldAk47_clipout.wav"*/
};

new const OriginalAK47Sounds[  ][  ] = {
	
	"weapons/ak47-1.wav",   
	"weapons/ak47-2.wav"/*,   
	"weapons/ak47_boltpull.wav",    
	"weapons/ak47_clipin.wav",    
	"weapons/ak47_clipout.wav"*/
};

new bool:bUserHasAk47[ 33 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );
}

public plugin_precache( ) {
	
	static i;
	for( i = 0; i <= charsmax( GoldAK47_SoundList ); i++ )
		precache_sound( GoldAK47_SoundList[ i ] );
}

public client_putinserver( id ) {
	
	bUserHasAk47[ id ] = false;
}

public client_disconnect( id ) {
	
	bUserHasAk47[ id ] = false;
}

public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( bUserHasAk47[ id ] ) {

			for( new i = 0; i < sizeof GoldAK47_SoundList; i++ ) {

				if( equal( sample, OriginalAK47Sounds[ i ] ) ) {

					emit_sound( id, channel, GoldAK47_SoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

28 Feb 2014, 19:37

Poti sa faci un tutorial cum sa schimbi sunetele dar prin alta metoda, este una mai complicata si vreau sa stiu cum :)
Multumesc! ^:)^
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

02 Mar 2014, 12:05

Doar pe asta o cunosc eu :) !
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

29 Aug 2014, 17:13

De ce nu testezi inainte sa faci un tutorial ? Sunetele armelor nu trec prin FM_EmitSound. Poti sa folosesti FM_PlayBackEvent pentru a schimba sunetul armelor pe care il auzi de la alti playeri, atat. Prin FM_EmitSound poti sa modifici doar sunetul de la armele tip knife.
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 15 guests