Page 1 of 1

random sound

Posted: 2012 Apr 01 12:59
by aurimasko
na turiu tokį dalyką:

Code: Select all

 new zm_miss_sounds[][] = {     -1,    { "umbrella_swarm/armored/miss/claw_miss_1.wav", "umbrella_swarm/armored/miss/claw_miss_2.wav", },    { "umbrella_swarm/fake/miss/claw_miss_1.wav", "umbrella_swarm/fake/miss/claw_miss_2.wav", },    { "umbrella_swarm/dasd/miss/claw_miss_1.wav", "umbrella_swarm/dasd/miss/claw_miss_2.wav", }}  
ir tokį:

Code: Select all

 emit_sound(id, CHAN_WEAPON, zm_miss_sounds[cInfo[id][Class]][0], volume, attn, flag, pitch) 
Kaip man iš masyvų išrinkti random garsą vienai klasei.. Tarkim mano klasė yra 1, tai turi išrinkti iš šitų "umbrella_swarm/armored/miss/claw_miss_1.wav", "umbrella_swarm/armored/miss/claw_miss_2.wav" random būdu vieną. Kaip jį rasti?

Re: random sound

Posted: 2012 Apr 01 13:31
by hleV

Code: Select all

zp_miss_sounds[<KLASE>][random(sizeof zp_miss_sounds[])]

Re: random sound

Posted: 2012 Apr 01 14:03
by aurimasko
na kažko neveikia. netik kad nesigirdi garso, o dar ir servą laužia.

Code: Select all

  public fw_EmitSound(id, channel, sample[], Float:volume, Float:attn, flag, pitch){    if(!is_user_alive(id) || cInfo[id][Team] != 1)        return FMRES_IGNORED        //KNIFE    if (sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n')    {        switch(sample[17])        {            case 'l':                 return FMRES_SUPERCEDE                            case 's', 'w':            {                emit_sound(id, CHAN_WEAPON, zm_miss_sounds[cInfo[id][Class]][random(sizeof zm_miss_sounds[])], volume, attn, flag, pitch)                return FMRES_SUPERCEDE            }        }    }    return FMRES_IGNORED}  
ir dar pastebėjau, kad tokiu būdu prechahinant:

Code: Select all

     for(i = 1; i < sizeof(zm_miss_sounds); i++)            engfunc(EngFunc_PrecacheSound, zm_miss_sounds[i])
užkrauna tik pačius pirmus, o antrų tos pačios klasės garsų ne.