HalfLife
February 15

Half-Life SDK: Iom da sonoj de pafado

Ĉefaĵo: Iom da pafsonoj por la armilo.

Ekzemple, "MP5" en "dlls/mp5.cpp" en "::Precache()" per "PRECACHE_SOUND(...)" estas tri sonoj: "hks(1-3).wav":

PRECACHE_SOUND("weapons/hks1.wav"); 
PRECACHE_SOUND("weapons/hks2.wav"); 
PRECACHE_SOUND("weapons/hks3.wav");

Sonludado estas en "cl_dlls/ev_hldm.cpp" en funkcio "EV_FireMP5":

switch (gEngfuncs.pfnRandomLong(0, 1))
	{
	case 0:
		gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/hks1.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong(0, 0xf));
		break;
	case 1:
		gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/hks2.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong(0, 0xf));
		break;
	}

Ĉi tie ni instalas proprajn sonojn. Kiomon de sonoj ni regulas per dua parametro de "gEngfuncs.pfnRandomLong(a, b)". Ekzemple, se necese estas ludi tri sonojn, do anstataŭ 1 ni skribas 2 kaj aldonas plie unun "case" ("case 2:"), kopiante enhavon de aliaj "case". Nur ne forgesu aldoni necesatan sonon en "PRECACHE_SOUND"on en funkcion "Precache" de necesata armilo.

Por aliaj armiloj ĉio estas sama. Ekzemple, por "glock" en dosiero "cl_dlls/ev_hldm.cpp" en funkcio "EV_FireGlock1":

Anstataŭ:

gEngfuncs.pEventAPI->EV_PlaySound(idx, origin, CHAN_WEAPON, "weapons/pl_gun3.wav", gEngfuncs.pfnRandomFloat(0.92, 1.0), ATTN_NORM, 0, 98 + gEngfuncs.pfnRandomLong(0, 3));

Aldonas "switch-case"on kiel en "MP5" kaj kaŝmemoras sonon en "Precache".

Nu jene.