LlCastRay
De DigiWiki.
Version du 17 mars 2012 à 08:59 par Djphil (discuter | contributions)
integer filter = 0; default { state_entry() { llSay(0, "Hello, Avatar!"); } touch_start(integer total_number) { vector start = llGetPos(); vector end = start - <0,-25,0>; if ( filter > 8 ) { filter = 0; } llOwnerSay("Filter " + (string)filter); list results = llCastRay(start, end, [RC_REJECT_TYPES, filter, RC_MAX_HITS, 4] ); integer hitNum = 0; // Handle error conditions here by checking llList2Integer(results, -1) >= 0 for ( hitNum = 0; hitNum < llList2Integer(results, -1); hitNum++ ) { // Stride is 2 because we didn't request normals or link numbers key uuid = llList2Key(results, 2*hitNum); string name; if ( uuid == NULL_KEY ) { name = "Land"; } else { name = llKey2Name(uuid); } llOwnerSay("Hit " + name); } filter += 1; } }