[Tutorial] Schimbarea sunetelor originale cu altele

Vezi subiectul anterior Vezi subiectul urmator In jos

[Tutorial] Schimbarea sunetelor originale cu altele

Mesaj Scris de SySty!.™ la data de Mier 17 Aug - 10:59

Pasul I
Intai includem fisierele .inc corespunzatoare in sursa:
#include < amxmodx >
#include < fakemeta >
Pasul II
Creem o variabila globala falsa:
new bool:bUserHasAk47[ 33 ];
Pasul III
Acum enumeram sunetele originale ale armei intr-o constanta:
new const OriginalAK47Sounds[ ][ ] = {

"weapons/ak47-1.wav",
"weapons/ak47-2.wav",
"weapons/ak47_boltpull.wav",
"weapons/ak47_clipin.wav",
"weapons/ak47_clipout.wav"
};
Pasul IV
Acum enumeram sunetele pe care vrem sa le inlocuim:
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 V
La plugin_init adaugam un forward:
register_forward( FM_EmitSound, "fw_EmitSounds" );
Pasul VI
Pentru ca vom folosi sunete, le vom adauga la plugin_prechace pentru a rula corespunzator:
public plugin_precache( ) {

static i;
for( i = 0; i <= charsmax( GoldAK47_SoundList ); i++ )
precache_sound( GoldAK47_SoundList[ i ] );
}
Pasul VII
Acum creem publicul cu constantele:
public fw_EmitSounds( const id, const channel, const sample[ ] ) {
Pasul VIII
Apoi:
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 IX
In final iese:
#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;
}
avatar
SySty!.™
Technician

Reputation : 4
Posts : 233
Puncte : 539

Vezi profilul utilizatorului

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus

- Subiecte similare

 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum