I don't know the inner workings of Icarus in the codebase, but I'm pretty sure affect isn't going to put all entities with the same script_targetname in an array for you and run logic on all of them. I'd need a coder to clarify on that point. I'm also pretty sure that you are only allowed 8 total parms on an entity. I'm not entirely 100 percent on that one either. It was just something I was told when I started modding JKA, and I was never shown any of the coding behind that. But it's a safe assumption to work off of. You might have better luck using global variables so you don't need to rely on trying to pick parms off of individual entities. For instance, this could be a script for one of the blocks.
//Generated by BehavEd
rem ( "This is just to show what it looks like to declare variables" );
//(BHVDREM) rem ( "You'd usually put all your declares in a separate scipt that is ran when the map starts" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block1_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block2_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block3_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block4_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block5_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block6_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block7_note" );
declare ( /*@DECLARE_TYPE*/ FLOAT, "block8_note" );
//(BHVDREM) rem ( "SPACING_FUNCTIONS!" );
//(BHVDREM) rem ( "SPACING_FUNCTIONS!" );
//(BHVDREM) rem ( "SPACING_FUNCTIONS!" );
if ( $get( FLOAT, "SET_PARM1")$, $=$, $0$ )
{
set ( /*@SET_TYPES*/ "SET_PARM1", "+1" );
set ( "block1_note", $get( FLOAT, "SET_PARM1")$ );
print ( $get( FLOAT, "SET_PARM1")$ );
}
else ( )
{
if ( $get( FLOAT, "SET_PARM1")$, $=$, $1$ )
{
set ( /*@SET_TYPES*/ "SET_PARM1", "+1" );
set ( "block1_note", $get( FLOAT, "SET_PARM1")$ );
print ( $get( FLOAT, "SET_PARM1")$ );
}
else ( )
{
if ( $get( FLOAT, "SET_PARM1")$, $=$, $2$ )
{
set ( /*@SET_TYPES*/ "SET_PARM1", "+1" );
set ( "block1_note", $get( FLOAT, "SET_PARM1")$ );
print ( $get( FLOAT, "SET_PARM1")$ );
}
else ( )
{
if ( $get( FLOAT, "SET_PARM1")$, $=$, $3$ )
{
set ( /*@SET_TYPES*/ "SET_PARM1", "+1" );
set ( "block1_note", $get( FLOAT, "SET_PARM1")$ );
print ( $get( FLOAT, "SET_PARM1")$ );
}
else ( )
{
if ( $get( FLOAT, "SET_PARM1")$, $>=$, $4$ )
{
set ( /*@SET_TYPES*/ "SET_PARM1", "0" );
set ( "block1_note", $get( FLOAT, "SET_PARM1")$ );
print ( $get( FLOAT, "SET_PARM1")$ );
}
}
}
}
}
Then instead of having to depend on grabbing variables off of the entities, you could read the global variables without running any affect blocks. For this, you'd probably have to setup a script for each block with multiple scriptrunners. Target the trigger_multiple at a target_relay and target the relay at all the scriptrunners.
//Generated by BehavEd
if ( $get( FLOAT, "block1_note")$, $=$, $0$ )
{
sound ( /*@CHANNELS*/ CHAN_AUTO, "null" );
}
else ( )
{
if ( $get( FLOAT, "block1_note")$, $=$, $1$ )
{
sound ( /*@CHANNELS*/ CHAN_AUTO, "my_fruity_sound1.mp3" );
}
else ( )
{
if ( $get( FLOAT, "block1_note")$, $=$, $2$ )
{
sound ( /*@CHANNELS*/ CHAN_AUTO, "my_fruity_sound2.mp3" );
}
else ( )
{
if ( $get( FLOAT, "block1_note")$, $=$, $3$ )
{
sound ( /*@CHANNELS*/ CHAN_AUTO, "my_fruity_sound3.mp3" );
}
else ( )
{
if ( $get( FLOAT, "block1_note")$, $=$, $4$ )
{
sound ( /*@CHANNELS*/ CHAN_AUTO, "my_fruity_sound4.mp3" );
}
}
}
}
}