From ef90e9104684f535e8a5edef643f008592254019 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Sat, 16 Feb 2013 14:45:30 -0500 Subject: [PATCH] updating to latest huffware set. --- .../documentation/docs_searchbert_v2.2.txt | 107 ---------- huffware/documentation/jaunting_readme.txt | 10 - ...license__freebie_in_the_metaverse_v1.8.txt | 20 -- .../searchbert_config_v0.4.txt | 22 --- .../FPS_color_changer_v2.4.txt | 0 .../FreeView_v1.8.txt | 0 .../JukeBox_v1.6.txt | 0 .../TL_Door_fredmod_v4.5.txt} | 3 +- .../a_huffotronic_update_server_v23.3.txt} | 15 +- .../anti-idler_mojo_v1.4.txt | 0 .../auto-retire_v2.8.txt | 0 .../card_configurator_v8.1.txt | 0 .../change_click_action_v1.0.txt | 0 .../clear_text_and_effects_v2.2.txt | 0 .../color_smoove_clock_v3.2.txt | 0 .../comfortable_sitting_v7.5.txt | 0 .../concussive_v19.2.txt | 0 .../cowpole_ignite_v1.2.txt | 0 .../create_objects_v1.3.txt | 0 .../data_cow_v3.3.txt | 0 .../docs_for_searchbert_v2.3.txt} | 29 ++- .../eepaw_shop_note_v0.8.txt | 0 .../fade_opacity_v3.7.txt | 0 .../fade_prim_v3.2.txt | 0 .../fredboxmux_no_rot_v3.0.txt | 0 .../fredboxmux_v3.0.txt | 0 .../giftorse_v7.6.txt | 0 .../huff-pet_v18.6.txt | 0 .../huff-search_brainiac_v48.1.txt} | 184 ++++++++++-------- .../huff-search_pointer_v11.9.txt} | 128 ++++++++---- .../huff-update_client_v20.1.txt | 0 .../huffbee_bulb_v4.7.txt | 0 .../hufflets_v6.3.txt | 0 .../huffware_id_registry_v3.2.txt | 0 .../inventory_exchanger_v3.7.txt | 0 .../invoke_nechung_v1.2.txt | 0 .../jaunting_library_v15.9.txt | 0 .../jump_good_v6.0.txt | 0 .../mediatron_control_v7.2.txt | 0 .../menu_list_manager_v12.7.txt} | 10 +- .../menutini_library_v6.1.txt} | 10 +- .../minnow_v10.6.txt | 0 .../non-script_giver_v3.2.txt} | 37 +++- .../noteworthy_library_v12.5.txt} | 6 +- .../particle_projector_v3.1.txt | 0 .../party_culiar_v6.1.txt} | 28 ++- .../phantomizer_v1.6.txt | 0 .../puffer_v1.3.txt | 0 .../radio_tuner_v1.2.txt | 0 .../rezzeroni_v21.0.txt} | 56 ++++-- .../rotanium_rotato_v2.7.txt | 0 .../searchbert_armature_v15.3.txt | 0 .../searchbert_config_v1.2.txt | 41 ++++ .../searchbert_menus_v5.2.txt} | 52 ++++- .../set_comparator_library_v4.1.txt | 0 .../slate_reader_v1.2.txt | 0 .../star_chair_sitting_config_v0.4.txt | 0 .../take_touches_v0.2.txt | 0 .../text_label_v4.1.txt} | 40 +++- .../texture_mover_v3.0.txt | 0 .../texture_shower_v2.7.txt | 0 .../viewscreen_blitter_v3.9.txt | 0 .../weapon_fire_v2.2.txt | 0 .../welcomebot_v4.0.txt | 0 .../wylie_controller_v8.4.txt | 0 .../zap_updater_from_elevators_v1.3.txt | 0 .../zenmondos_mailbox_v0.4.txt | 0 .../Hyper_Jump_Wilder_Westen_v0.2.txt | 0 .../a_huffotronic_update_server_v23.3.txt} | 15 +- .../aqua_config_v0.5.txt | 0 .../child_jaunter_v85.2.txt | 0 .../coastal_connector_hubs_v2.4.txt | 0 .../data_cow_v3.3.txt | 0 .../emptiness_jaunter_config_v0.2.txt | 0 .../fred_main_hubs_v5.4.txt | 0 .../hal9000_config_v0.4.txt | 0 .../hamstertram_config_v7.8.txt | 0 .../huff-update_client_v20.1.txt | 0 .../jaunt_config_funcs_v2.9.txt | 0 .../jaunt_rezolator_v22.3.txt | 0 .../jaunt_wik_rez_v86.3.txt | 0 .../jaunter_button_pusher_v0.8.txt | 0 .../jaunting_library_v15.9.txt | 0 .../menutini_library_v6.1.txt} | 10 +- .../noteworthy_library_v12.4.txt | 0 .../texture_mover_v3.0.txt | 0 .../Hour_Hand_v0.5.txt | 0 .../Minute_Hand_v0.4.txt | 0 .../NC_stay_at_home_v5.2.txt | 0 .../Vote_for_me_v4.2.txt | 0 .../a_huffotronic_update_server_v23.3.txt} | 15 +- .../a_jumping_bean_v2.7.txt | 0 .../altitudinator_v1.1.txt | 0 ...ama_omega_et_al_vendor_owner-only_v0.5.txt | 0 .../animated_texture_v0.4.txt | 0 .../axis_rider_v2.9.txt | 0 .../base_note_read_v0.3.txt | 0 .../begging_bowl_v4.4.txt | 0 .../bouncer_v2.1.txt} | 17 +- .../box_mover_v1.7.txt | 0 .../button_pusher_v0.5.txt | 0 .../chaos_picks_a_number_v3.0.txt | 0 .../collider_v1.3.txt | 0 .../comfortable_sitting_v7.5.txt | 0 .../die_on_demand_v0.3.txt | 0 .../email_notecards_v6.2.txt} | 23 ++- .../hamster_sound_effects_v0.8.txt | 0 .../html_onna_prim_v1.6.txt | 0 .../huff-update_client_v20.1.txt | 0 .../invisiprim_v0.8.txt | 0 ...n_osgrid_&_personal_opensims_only_v1.9.txt | 0 .../link_reporter_v0.5.txt | 0 .../logic_system_main_v1.8.txt | 0 .../megaprim_v0.3.txt | 0 .../mu_tester_v6.0.txt | 0 .../no_sitting_on_vendor_v1.0.txt | 0 .../noteworthy_example_usage_v3.6.txt | 0 .../report_to_merchants_v1.6.txt} | 11 +- .../sculpty_morpher_v0.6.txt | 46 +++++ .../set_roundy_v0.6.txt | 0 .../simple_map_tp_v0.3.txt | 0 .../simpy_pet_v3.7.txt | 0 .../sit_testing_v0.6.txt | 0 .../swiveller_v1.1.txt | 0 .../tester_for_inventory_exchanger_v1.0.txt | 0 .../time_zone_picker_v0.6.txt | 0 .../timed_expiration_v2.9_(toxic)_.txt | 0 .../touchy_feely_doro_v0.4.txt | 0 .../turbo_lifter_v5.8.txt} | 2 +- .../uuid_shower_mat_v0.3.txt | 0 .../vendor_sales_manager_v3.1.txt | 0 .../zap_updater_from_elevators_v1.3.txt | 0 132 files changed, 559 insertions(+), 378 deletions(-) delete mode 100644 huffware/documentation/docs_searchbert_v2.2.txt delete mode 100644 huffware/documentation/jaunting_readme.txt delete mode 100755 huffware/huffotronic_eepaw_knowledge_v60.9/license__freebie_in_the_metaverse_v1.8.txt delete mode 100755 huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_config_v0.4.txt rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/FPS_color_changer_v2.4.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/FreeView_v1.8.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/JukeBox_v1.6.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/TL_Door_fredmod_v4.4.txt => huffotronic_eepaw_knowledge_v62.5/TL_Door_fredmod_v4.5.txt} (99%) rename huffware/{huffotronic_jaunter_updater_v5.1/a_huffotronic_update_server_v23.2.txt => huffotronic_eepaw_knowledge_v62.5/a_huffotronic_update_server_v23.3.txt} (98%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/anti-idler_mojo_v1.4.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/auto-retire_v2.8.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/card_configurator_v8.1.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/change_click_action_v1.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/clear_text_and_effects_v2.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/color_smoove_clock_v3.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/comfortable_sitting_v7.5.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/concussive_v19.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/cowpole_ignite_v1.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/create_objects_v1.3.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/data_cow_v3.3.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/docs_for_searchbert_v2.2.txt => huffotronic_eepaw_knowledge_v62.5/docs_for_searchbert_v2.3.txt} (80%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/eepaw_shop_note_v0.8.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/fade_opacity_v3.7.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/fade_prim_v3.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/fredboxmux_no_rot_v3.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/fredboxmux_v3.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/giftorse_v7.6.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/huff-pet_v18.6.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/huff-search_brainiac_v46.7.txt => huffotronic_eepaw_knowledge_v62.5/huff-search_brainiac_v48.1.txt} (90%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/huff-search_pointer_v10.0.txt => huffotronic_eepaw_knowledge_v62.5/huff-search_pointer_v11.9.txt} (82%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/huff-update_client_v20.1.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/huffbee_bulb_v4.7.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/hufflets_v6.3.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/huffware_id_registry_v3.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/inventory_exchanger_v3.7.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/invoke_nechung_v1.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/jaunting_library_v15.9.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/jump_good_v6.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/mediatron_control_v7.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/menu_list_manager_v12.4.txt => huffotronic_eepaw_knowledge_v62.5/menu_list_manager_v12.7.txt} (98%) rename huffware/{huffotronic_jaunter_updater_v5.1/menutini_library_v5.9.txt => huffotronic_eepaw_knowledge_v62.5/menutini_library_v6.1.txt} (97%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/minnow_v10.6.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/non-script_giver_v2.8.txt => huffotronic_eepaw_knowledge_v62.5/non-script_giver_v3.2.txt} (92%) rename huffware/{huffotronic_jaunter_updater_v5.1/noteworthy_library_v12.4.txt => huffotronic_eepaw_knowledge_v62.5/noteworthy_library_v12.5.txt} (98%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/particle_projector_v3.1.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/party_culiar_v5.7.txt => huffotronic_eepaw_knowledge_v62.5/party_culiar_v6.1.txt} (96%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/phantomizer_v1.6.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/puffer_v1.3.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/radio_tuner_v1.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/rezzeroni_v20.2.txt => huffotronic_eepaw_knowledge_v62.5/rezzeroni_v21.0.txt} (97%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/rotanium_rotato_v2.7.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/searchbert_armature_v15.3.txt (100%) create mode 100755 huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_config_v1.2.txt rename huffware/{huffotronic_eepaw_knowledge_v60.9/searchbert_menus_v4.6.txt => huffotronic_eepaw_knowledge_v62.5/searchbert_menus_v5.2.txt} (88%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/set_comparator_library_v4.1.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/slate_reader_v1.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/star_chair_sitting_config_v0.4.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/take_touches_v0.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/text_label_v3.9.txt => huffotronic_eepaw_knowledge_v62.5/text_label_v4.1.txt} (81%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/texture_mover_v3.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/texture_shower_v2.7.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/viewscreen_blitter_v3.9.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/weapon_fire_v2.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/welcomebot_v4.0.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/wylie_controller_v8.4.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/zap_updater_from_elevators_v1.3.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_eepaw_knowledge_v62.5}/zenmondos_mailbox_v0.4.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/Hyper_Jump_Wilder_Westen_v0.2.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1/a_huffotronic_update_server_v23.2.txt => huffotronic_jaunter_updater_v5.3/a_huffotronic_update_server_v23.3.txt} (98%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/aqua_config_v0.5.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/child_jaunter_v85.2.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/coastal_connector_hubs_v2.4.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/data_cow_v3.3.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/emptiness_jaunter_config_v0.2.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/fred_main_hubs_v5.4.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/hal9000_config_v0.4.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/hamstertram_config_v7.8.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/huff-update_client_v20.1.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/jaunt_config_funcs_v2.9.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/jaunt_rezolator_v22.3.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/jaunt_wik_rez_v86.3.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/jaunter_button_pusher_v0.8.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/jaunting_library_v15.9.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/menutini_library_v5.9.txt => huffotronic_jaunter_updater_v5.3/menutini_library_v6.1.txt} (97%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_jaunter_updater_v5.3}/noteworthy_library_v12.4.txt (100%) rename huffware/{huffotronic_jaunter_updater_v5.1 => huffotronic_jaunter_updater_v5.3}/texture_mover_v3.0.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/Hour_Hand_v0.5.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/Minute_Hand_v0.4.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/NC_stay_at_home_v5.2.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/Vote_for_me_v4.2.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9/a_huffotronic_update_server_v23.2.txt => huffotronic_tools_n_testers_v6.5/a_huffotronic_update_server_v23.3.txt} (98%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/a_jumping_bean_v2.7.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/altitudinator_v1.1.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/ama_omega_et_al_vendor_owner-only_v0.5.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/animated_texture_v0.4.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/axis_rider_v2.9.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/base_note_read_v0.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/begging_bowl_v4.4.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1/bouncer_v2.0.txt => huffotronic_tools_n_testers_v6.5/bouncer_v2.1.txt} (93%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/box_mover_v1.7.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/button_pusher_v0.5.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/chaos_picks_a_number_v3.0.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/collider_v1.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/comfortable_sitting_v7.5.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/die_on_demand_v0.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1/email_notecards_v6.0.txt => huffotronic_tools_n_testers_v6.5/email_notecards_v6.2.txt} (95%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/hamster_sound_effects_v0.8.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/html_onna_prim_v1.6.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/huff-update_client_v20.1.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/invisiprim_v0.8.txt (100%) rename huffware/{huffotronic_eepaw_knowledge_v60.9 => huffotronic_tools_n_testers_v6.5}/license__free_in_osgrid_&_personal_opensims_only_v1.9.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/link_reporter_v0.5.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/logic_system_main_v1.8.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/megaprim_v0.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/mu_tester_v6.0.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/no_sitting_on_vendor_v1.0.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/noteworthy_example_usage_v3.6.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1/report_to_merchants_v1.3.txt => huffotronic_tools_n_testers_v6.5/report_to_merchants_v1.6.txt} (88%) create mode 100755 huffware/huffotronic_tools_n_testers_v6.5/sculpty_morpher_v0.6.txt rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/set_roundy_v0.6.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/simple_map_tp_v0.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/simpy_pet_v3.7.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/sit_testing_v0.6.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/swiveller_v1.1.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/tester_for_inventory_exchanger_v1.0.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/time_zone_picker_v0.6.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/timed_expiration_v2.9_(toxic)_.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/touchy_feely_doro_v0.4.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1/turbo_lifter_v5.7.txt => huffotronic_tools_n_testers_v6.5/turbo_lifter_v5.8.txt} (99%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/uuid_shower_mat_v0.3.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/vendor_sales_manager_v3.1.txt (100%) rename huffware/{huffotronic_tools_n_testers_v6.1 => huffotronic_tools_n_testers_v6.5}/zap_updater_from_elevators_v1.3.txt (100%) diff --git a/huffware/documentation/docs_searchbert_v2.2.txt b/huffware/documentation/docs_searchbert_v2.2.txt deleted file mode 100644 index 097e2c7d..00000000 --- a/huffware/documentation/docs_searchbert_v2.2.txt +++ /dev/null @@ -1,107 +0,0 @@ -Subject: -docs for searchbert v2.2 (part 1) [via fred huffhines] -From: -<09a0351a-9e36-414f-9322-adc731c3dddd@fred@gruntose.com> -Date: -04/29/2012 10:15 PM -To: - - -Object-Name: email notes to fred v1.6 -Region: smokier (2562048, 2562304) -Local-Position: (175, 77, 84) - -=================================== -info about the searchbert seeker robot -=================================== - -### -version 46.3 -released October 8 2011 -### - -author=fred huffhines (osgrid and second life avatar) -source=eepaw shop (see below) -price=*free* -** note: if you paid for this, someone ripped you off. please let fred huffhines in osgrid or second life know about this. -license = gpl [ http://www.gnu.org/licenses/gpl.html ] within metaverse (osgrid, opensims, second life, etc). - - searchbert is a full-perm second life search engine that i created for the free scripts library (which used to be in the Solvo region of second life, but which no longer exists, sadly). - - this device can find matches for nearby objects given just a part of the object's name. after doings its scan, searchbert points out all the objects with multi-colored particle beams. - - the objects can be scattered at different heights and distances, even fairly far away from searchbert, and still be accurately located. avatars will also be found if their names match the search. searchbert can point out up to 17 objects and avatars - - if you 'Touch' searchbert, then it will tell you its usage info. here is a more detailed version of the help information. - you can speak these commands near searchbert in open chat to give it some orders: - - #find X - looks for any object nearby with "X" in its name. - try this one out: "#find primitive" (in osgrid) or "#find object" (in second life) - that will find any items that have been left with their respective default names. - and this is a nice one: "#find e" - finds any object whose name contains the letter 'e'. that's usually very many things. - - #reset - clears any existing search matches that had been found. the matches will eventually time-out and be forgotten anyhow, but this makes searchbert forget the search immediately. - if this command is used by the owner of searchbert while a search is active, it stops the search immediately, but doesn't clear any matches that may already have been found. #reset can only be used this way by the owner, which avoids random peopl - - #initialize - hard core brain-clearing command for the searchbert; makes it fully clear out and restart its scripts. - - #skew - *bonus* a debugging command that makes searchbert point its arms in all directions. - - #channel - allows the listening channel for searchbert to be changed. example: - #channel 42 - this makes searchbert listen for any commands on channel 42, a fact which should be reflected - in the menus and chat after this.. - -that's about it for the basics... enjoy! ---fred huffhines - -==== -more detailed and nutty searchbert notes... - -* searchbert builds upon original scripts by christopher omega and ama omega, which gave me a starting point for the particle system and link message communication. i have put quite a lot of time into the searchbert also, to make it zoom around in a spir - - -Subject: -docs for searchbert v2.2 (part 2) [via fred huffhines] -From: -<09a0351a-9e36-414f-9322-adc731c3dddd@fred@gruntose.com> -Date: -04/29/2012 10:15 PM -To: - - -Object-Name: email notes to fred v1.6 -Region: smokier (2562048, 2562304) -Local-Position: (175, 77, 84) - -* searchbert gets around second life's limitations on the number of search matches by moving around and looking at things from different angles. it uses a spiral search pattern to traverse the area. it has multiple "seeker rods" to find matches, and the - -* you can rip all of searchbert's arms off and it won't feel a thing! rez a searchbert on land where you have permissions, right-click on it and select "Edit". when the editing dialog has popped up, hit this key combination: "ctrl-shift-L". that is the - -* release 46.3 fixes a bug in the menu system where only the owner would see the menu. it also includes the newest doc file, which was omitted in the big 46.0 release. - -* release 46.0 sees the arm reattachment code in a separate script. we were doing fine with version 42.0 in open simulator, but second life had other ideas about how much space a script is allowed to occupy when compiled. this forced us to separate out - -* as of searchbert 42.0, there is a notecard configuration system and a menuing system. the options available in the notecards for configuration are broader than what is available in the menu interface, so far. -due to how scripts work, if you reset the scripts, then any items configured from the menu are forgotten and searchbert will fall back to whatever is specified in the notecard. - -* the search range at which objects will be found can be re-configured inside searchbert's "searchbert config vX.Y" notecard. there are two parts to this. the max_spiral_radius variable is the maximum distance searchbert will travel away from its starti - -* as of searchbert 32.5, searchbert is low lag: - old searchbert 31.3 crushed performance of densely packed and also second life's "openspace sims" before, eating up to 10% of the sim's recommended cpu. - that was then, version 32.5 is now (or was "now" when i wrote this screed); it uses about 10% of its former resources (so more like 1% or less of sim cpu) when it's active. thanks very much to eren padar for measuring its performance with elf clan's - also this version doesn't ask for link permissions unless it needs to put its arms back on. thanks to hippyjim starbrook for that suggestion. - -* searchbert is the freebie mascot for our store, Eclectic Electric Patterns and Widgets (eepaw). - check out the licensing notecard for our store locations. - -* thanks for reading the extended notes. you are a patient, patient person. --fred huffhines. - - - diff --git a/huffware/documentation/jaunting_readme.txt b/huffware/documentation/jaunting_readme.txt deleted file mode 100644 index f60166dc..00000000 --- a/huffware/documentation/jaunting_readme.txt +++ /dev/null @@ -1,10 +0,0 @@ - -Jaunting is our term for teleporting around the grid. The term jaunt comes -from 'The Stars My Destination' by Alfred Bester and we refer to it in a -similar context. - -The jaunting library script is the useful encapsulation of a variety of -teleportation and movement control methods. It is interfaced to via a -huffware API for remote procedure calls. - - diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/license__freebie_in_the_metaverse_v1.8.txt b/huffware/huffotronic_eepaw_knowledge_v60.9/license__freebie_in_the_metaverse_v1.8.txt deleted file mode 100755 index 15052c67..00000000 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/license__freebie_in_the_metaverse_v1.8.txt +++ /dev/null @@ -1,20 +0,0 @@ ---license version: april 24 2011-- -author: fred huffhines (osgrid and second life avatar) -source: eepaw shop (see below) -all content by fred huffhines is licensed by GPL [ http://www.gnu.org/licenses/gpl.html ] within the full metaverse (osgrid, opensims, second life, etc). -note that any included content created by others may be licensed differently; all appropriate original copyright notices have been retained. -price: *free* - ** note: if you paid for this, someone ripped you off. please let fred huffhines in osgrid or second life know about this. - -* our store is called Eclectic Electric Patterns and Widgets (eepaw). we started out in Second life, but have since branched out into opensim based simulators. we have two locations for the store now, one in osgrid that is all ++freebies++, and another store in second life that is a mix of commercial objects and freebies (because the linden labs dingbats insist on charging exorbitant rates to rent space on their servers). - -* in osgrid: our brand new freebie store (as of march 2011) is in wright plaza at <228, 22, 21> - [ or http://slurl.com/secondlife/Wright%20Plaza/228/22/21 ]. -this will be our base of operations from now on, or until there's no power left in the global electrical grid. -a lot of our new stuff will be available here first, and for free to osgrid avatars. -please don't upload our stuff into second life, because that store (see below) kind of needs to pay for itself. render unto caesar and all that. so, thanks. - -* in second life: the eepaw shop is located way out in the "smoky" region of the atoll (heterocera). Feel free to mosey over and check our other strange devices out, many others of which are also totally free... - http://slurl.com/secondlife/Smoky/14/84/405 - -* we are personally very fond of each of you. --fred huffhines. diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_config_v0.4.txt b/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_config_v0.4.txt deleted file mode 100755 index e86e2d86..00000000 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_config_v0.4.txt +++ /dev/null @@ -1,22 +0,0 @@ -#searchbert - -# see the huff-search brainiac script for more information about what these mean. they correspond to the -# global variables that are "useful to change" near the top of the script. - -# can only point to maximum of 17 things. -max_matches = 17 -huff_search_chat_channel = 0 -traverse_lands = 0 - -sensor_max_range = 96.0 -# angular default is pi / 2 (90 degrees). -search_rod_angular_sweep = 1.57079632679 - -max_spiral_radius = 72.0 -spiral_loops = 7 -total_steps = 42 -max_spiral_traversals = 1 - -travelling_upwards = 0 -max_upwards_distance = 30.0 - diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/FPS_color_changer_v2.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/FPS_color_changer_v2.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/FPS_color_changer_v2.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/FPS_color_changer_v2.4.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/FreeView_v1.8.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/FreeView_v1.8.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/FreeView_v1.8.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/FreeView_v1.8.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/JukeBox_v1.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/JukeBox_v1.6.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/JukeBox_v1.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/JukeBox_v1.6.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/TL_Door_fredmod_v4.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/TL_Door_fredmod_v4.5.txt similarity index 99% rename from huffware/huffotronic_eepaw_knowledge_v60.9/TL_Door_fredmod_v4.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/TL_Door_fredmod_v4.5.txt index 0255c6c2..8882947c 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/TL_Door_fredmod_v4.4.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/TL_Door_fredmod_v4.5.txt @@ -100,8 +100,7 @@ string doorBellSound = ""; // Setting to empty stops door announcemen float autoCloseTime = 120.0; // 0 seconds to disable auto close. integer allowGroupToo = TRUE; // Set to FALSE to disallow same group access to door. list allowedAgentUUIDs = []; // Comma-separated, quoted list of avatar UUIDs who are allowed access to this door. -// was allowing this sneaky guy: "8efecbac-35de-4f40-89c1-2c772b83cafa" -integer listenChannel = 10106; +integer listenChannel = 100008; float RESPONSE_DISTANCE = 120.0; // how far to allow a command from users with permission. integer DEBUGGING = FALSE; integer PASS_COMMANDS = TRUE; diff --git a/huffware/huffotronic_jaunter_updater_v5.1/a_huffotronic_update_server_v23.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/a_huffotronic_update_server_v23.3.txt similarity index 98% rename from huffware/huffotronic_jaunter_updater_v5.1/a_huffotronic_update_server_v23.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/a_huffotronic_update_server_v23.3.txt index ef201cf7..fbba630b 100755 --- a/huffware/huffotronic_jaunter_updater_v5.1/a_huffotronic_update_server_v23.2.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/a_huffotronic_update_server_v23.3.txt @@ -476,14 +476,13 @@ propel_upgrade_process(integer channel, key id, string message) // assume it's a script, and use script pin to stuff it. curr = backpatch_script_name(curr); if (curr != "") { -// integer starting_state = FALSE; -// second life was okay with scripts being plugged in unstarted. opensim is not. -// and second life appears to be unhappy with scripts plugged in as started. so we -// have an impasse. -// this should be: true for opensim, and false for second life. - integer starting_state = IS_OPENSIM; + // second life was okay with scripts being plugged in unstarted; opensim is not. + // and second life appears to be unhappy when scripts are added to objects in + // a running state. so we have an impasse. so 'running' should be true + // for opensim, and false for second life. + integer running = IS_OPENSIM; // if (DEBUGGING) log_it("installing script using updater pin."); - llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, starting_state, 0); + llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, running, 0); } } } @@ -785,7 +784,7 @@ scrub_items_by_type(string this_guy, integer inventory_type) } if (IS_OPENSIM && (llGetListLength(removal_list) > 0) ) { - log_it("now restarting to avoid opensim late updating change event."); +// log_it("now restarting to avoid opensim late updating change event."); llResetScript(); } } diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/anti-idler_mojo_v1.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/anti-idler_mojo_v1.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/anti-idler_mojo_v1.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/anti-idler_mojo_v1.4.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/auto-retire_v2.8.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/auto-retire_v2.8.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/auto-retire_v2.8.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/auto-retire_v2.8.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/card_configurator_v8.1.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/card_configurator_v8.1.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/card_configurator_v8.1.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/card_configurator_v8.1.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/change_click_action_v1.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/change_click_action_v1.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/change_click_action_v1.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/change_click_action_v1.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/clear_text_and_effects_v2.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/clear_text_and_effects_v2.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/clear_text_and_effects_v2.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/clear_text_and_effects_v2.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/color_smoove_clock_v3.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/color_smoove_clock_v3.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/color_smoove_clock_v3.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/color_smoove_clock_v3.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/comfortable_sitting_v7.5.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/comfortable_sitting_v7.5.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/comfortable_sitting_v7.5.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/comfortable_sitting_v7.5.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/concussive_v19.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/concussive_v19.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/concussive_v19.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/concussive_v19.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/cowpole_ignite_v1.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/cowpole_ignite_v1.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/cowpole_ignite_v1.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/cowpole_ignite_v1.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/create_objects_v1.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/create_objects_v1.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/create_objects_v1.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/create_objects_v1.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/data_cow_v3.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/data_cow_v3.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/data_cow_v3.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/data_cow_v3.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/docs_for_searchbert_v2.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/docs_for_searchbert_v2.3.txt similarity index 80% rename from huffware/huffotronic_eepaw_knowledge_v60.9/docs_for_searchbert_v2.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/docs_for_searchbert_v2.3.txt index 1a4e1a30..b3eb1cd2 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/docs_for_searchbert_v2.2.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/docs_for_searchbert_v2.3.txt @@ -3,8 +3,8 @@ info about the searchbert seeker robot =================================== ### -version 46.4 -released February 26 2012 +version 48.0 +released June 2 2012 ### author=fred huffhines (osgrid and second life avatar) @@ -50,6 +50,7 @@ that's about it for the basics... enjoy! ==== more detailed and nutty searchbert notes... +==== * searchbert builds upon original scripts by christopher omega and ama omega, which gave me a starting point for the particle system and link message communication. i have put quite a lot of time into the searchbert also, to make it zoom around in a spiral and so forth. @@ -57,18 +58,38 @@ more detailed and nutty searchbert notes... * you can rip all of searchbert's arms off and it won't feel a thing! rez a searchbert on land where you have permissions, right-click on it and select "Edit". when the editing dialog has popped up, hit this key combination: "ctrl-shift-L". that is the "remove all links" shortcut command, and it will separate all the arms from searchbert's main body (the sphere). the arms will take this very poorly and all die, but the sphere will survive. after that ugliness, clicking on searchbert will make it perform its "putting my arms back on" schtick for about 17 seconds. it needs permission to attach objects, and will ask for it. after the arms are finished being snapped back on, searchbert will be fully functional again. +* the search range at which objects will be found can be re-configured inside searchbert's "searchbert config vX.Y" notecard. there are two parts to this. the max_spiral_radius variable is the maximum distance searchbert will travel away from its starting point. the sensor_max_range variable is the maximum distance used for a sensor scan. so the maximum distance from its starting point that searchbert will ever be able to find an object at is max_spiral_radius + sensor_max_range. + +* in fact, if you want to configure searchbert's default behavior, most everything that's worth configuring is in its +searchbert config notecard. we've left a few notes in there to describe what the options do. comprehensive, complete, +correct notes? well, maybe not. we will work on this in a future version. + +--versions history-- + +* version 48.0, released june 2012, adds three options: option 1: specify what type of objects to find during a search. this is +the possibly familiar bit patterns of agent, active and passive. option 2: change how searchbert prints out the search matches. +one can leave out or include any of: object uuid, name, location. you can even leave out all of them and just show the count +of matches. option 3: present arms! different styles for how searchbert points its arms at the target. arm style 0 is the original +recipe, where the arms middle points are centered at the searchbert root prim's center (in the middle of the funky transparent +ball). arm style 1 causes the arms to have one end affixed to the outer wall of searchbert, opposite from the search target. +arm style 2 puts the arms on the other outer wall, nearest the search target. the arms are basically all outside searchbert. +arm style 3 puts one end of the arm at the center of searchbert, and points the other end at the target. + +* version 46.4, released February 26 2012, maintenance fix to make menu listen to other people, and to keep menu system +from dying and refusing to pop menus up. + * release 46.0 sees the arm reattachment code in a separate script. we were doing fine with version 42.0 in open simulator, but second life had other ideas about how much space a script is allowed to occupy when compiled. this forced us to separate out the code for the arm reattachment procedures in a 'searchbert armature' script. this script also takes care of synchronizing content with the seeker arms. fracturing searchbert's code in this way actually led to a few simplifications, so maybe it's now better overall, but being _forced_ to refactor is not exactly the ideal process for optimal software development. * as of searchbert 42.0, there is a notecard configuration system and a menuing system. the options available in the notecards for configuration are broader than what is available in the menu interface, so far. due to how scripts work, if you reset the scripts, then any items configured from the menu are forgotten and searchbert will fall back to whatever is specified in the notecard. -* the search range at which objects will be found can be re-configured inside searchbert's "searchbert config vX.Y" notecard. there are two parts to this. the max_spiral_radius variable is the maximum distance searchbert will travel away from its starting point. the sensor_max_range variable is the maximum distance used for a sensor scan. so the maximum distance from its starting point that searchbert will ever be able to find an object at is max_spiral_radius + sensor_max_range. - * as of searchbert 32.5, searchbert is low lag: old searchbert 31.3 crushed performance of densely packed and also second life's "openspace sims" before, eating up to 10% of the sim's recommended cpu. that was then, version 32.5 is now (or was "now" when i wrote this screed); it uses about 10% of its former resources (so more like 1% or less of sim cpu) when it's active. thanks very much to eren padar for measuring its performance with elf clan's estate tools. also this version doesn't ask for link permissions unless it needs to put its arms back on. thanks to hippyjim starbrook for that suggestion. +--doop-dee-doop-- + * searchbert is the freebie mascot for our store, Eclectic Electric Patterns and Widgets (eepaw). check out the licensing notecard for our store locations. diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/eepaw_shop_note_v0.8.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/eepaw_shop_note_v0.8.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/eepaw_shop_note_v0.8.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/eepaw_shop_note_v0.8.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/fade_opacity_v3.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/fade_opacity_v3.7.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/fade_opacity_v3.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/fade_opacity_v3.7.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/fade_prim_v3.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/fade_prim_v3.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/fade_prim_v3.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/fade_prim_v3.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/fredboxmux_no_rot_v3.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/fredboxmux_no_rot_v3.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/fredboxmux_no_rot_v3.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/fredboxmux_no_rot_v3.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/fredboxmux_v3.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/fredboxmux_v3.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/fredboxmux_v3.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/fredboxmux_v3.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/giftorse_v7.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/giftorse_v7.6.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/giftorse_v7.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/giftorse_v7.6.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-pet_v18.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-pet_v18.6.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huff-pet_v18.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huff-pet_v18.6.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_brainiac_v46.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_brainiac_v48.1.txt similarity index 90% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_brainiac_v46.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_brainiac_v48.1.txt index a5c10dce..7cfc295c 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_brainiac_v46.7.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_brainiac_v48.1.txt @@ -68,12 +68,28 @@ float MAX_UPWARDS_DISTANCE = 30.0; float SEARCH_ROD_ANGULAR_SWEEP = PI_BY_TWO; // angular arc of the sensor cone, placeholder. +integer SEARCH_OBJECT_TYPE = 7; + // the kind of objects to find. default is anything. + +// these enable or disable items in the list displayed to the user for matches. +integer SHOW_NAME = TRUE; +integer SHOW_POSITION = TRUE; +integer SHOW_UUID = TRUE; + +// the style of how searchbert presents its arms. +integer PRESENT_ARMS_STYLE = 0; // PAS_CENTERED is the default. + ////////////// // constants that are not configurable in a notecard... integer DEBUGGING = FALSE; // set to true to make the script noisier. +// SENSOR_TYPE_ALL: a constant that tells the sensor to look for (ACTIVE|PASSIVE|AGENT). +integer SENSOR_TYPE_ALL = 7; + +integer LARGEST_STRING = 800; // the longest string we try to build at once. + ////////////// // global constants that aren't as useful to change... @@ -117,16 +133,24 @@ integer REPLY_DISTANCE = 100008; // offset added to service's huffware id in re ////////////// string HUFF_SEARCH_RESET = "#reset#"; // returns the script to its starting state. +// constants for controlling how searchbert presents its arms when pointing. they are the +// Present Arms Styles (PAS). +integer PAS_CENTERED = 0; + // original style of arm positioning for searchbert. the arms are centered at the root prim's + // center, and they point towards the target. string HUFF_SEARCH_POINT_PARTY = "#point_particles#"; - // aim at an object and show a particle stream leading to it. + // aim at an object and show a particle stream leading to it. parms are a UUID key for the + // target, the target location vector and a PAS value. string HUFF_SEARCH_JUST_POINT = "#just_point#"; - // aim at an object, but don't do any particles. + // aim at an object, but don't do any particles. parms are the target vector + // and a PAS value. string HUFF_SEARCH_SENSEI = "#sensor#"; // set up a sensor request for a search pattern. pings will cause // the pattern to be sought in names of nearby objects. the parameters are: // (1) the maximum range for the sensor, (2) the arc angle to use in sensing, // (3) the search pattern to look for in object names, (4) the maximum number - // of matches to look for. + // of matches to look for, (5) the type of objects to find (e.g. SENSOR_TYPE_ALL + // or other values). string HUFF_SEARCH_STOP_SENSE = "#stop_sensor#"; // turn off the sensor but don't totally reset. string HUFF_SEARCH_PING = "#ping#"; @@ -212,18 +236,6 @@ integer JAUNT_HUFFWARE_ID = 10008; // commands available via the jaunting library: string JAUNT_COMMAND = "#jaunt#"; // command used to tell jaunt script to move object. pass a vector with the location. -//string FULL_STOP_COMMAND = "#fullstop#"; - // command used to bring object to a halt. -//string REVERSE_VELOCITY_COMMAND = "#reverse#"; - // makes the object reverse its velocity and travel back from whence it came. -//string SET_VELOCITY_COMMAND = "#setvelocity#"; - // makes the velocity equal to the vector passed as the first parameter. -//string JAUNT_UP_COMMAND = "#jauntup#"; -//string JAUNT_DOWN_COMMAND = "#jauntdown#"; - // commands for height adjustment. pass a float for number of meters to move. -//string JAUNT_LIST_COMMAND = "#jauntlist#"; - // like regular jaunt, but expects a string in jaunt notecard format with vectors. - // the second parameter, if any, should be 1 for forwards traversal and 0 for backwards. // ////////////// @@ -291,20 +303,32 @@ vector last_jaunt_target; ////////////// +//hmmm: copy this to hufflets + +// sets the timer safely, to get around a second life bug that sometimes +// drops the timer set unless there's a reset first. nasty! +set_timer(float interval) +{ + llSetTimerEvent(0); + llSetTimerEvent(interval); +} + +////////////// + // main functions for getting work done as the searchbert... // pointing that doesn't use particles, but just aims a search rod. -aim_at_position(integer which_seeker, vector targetPosition) { - list paramList = [targetPosition]; +aim_at_position(integer which_seeker, vector targetPosition, integer pas_style) { + list paramList = [targetPosition, pas_style]; request_from_seeker(which_seeker, llDumpList2String(paramList, HUFFWARE_PARM_SEPARATOR), HUFF_SEARCH_JUST_POINT); } // tells the rod at "which_seeker" link to do a sensor scan. start_sensing(integer which_seeker, float max_range, float arc_angle, string search_pattern, - integer matches_sought) + integer matches_sought, integer object_type) { - list paramList = [max_range, arc_angle, search_pattern, matches_sought]; + list paramList = [max_range, arc_angle, search_pattern, matches_sought, object_type]; request_from_seeker(which_seeker, llDumpList2String(paramList, HUFFWARE_PARM_SEPARATOR), HUFF_SEARCH_SENSEI); } @@ -396,15 +420,19 @@ chat_about_matches() // only show a maximum number of matches as we have seeker objects. if (len > MAX_MATCHES) len = MAX_MATCHES; for (i = 0; i < len; i++) { - if (llStringLength(match_description) > 350) { + if (llStringLength(match_description) > LARGEST_STRING) { llSay(0, "\n" + match_description); match_description = ""; - } else if (i != 0) match_description += "\n"; + } else if ( (i != 0) && (SHOW_NAME || SHOW_POSITION || SHOW_UUID) ) { + match_description += "\n"; + } key targetKey = llList2Key(global_matches_found, i); - vector targetPos = llList2Vector(global_positions_found, i); - match_description += llKey2Name(targetKey) - + " @ " + vector_to_string(targetPos) - + " [" + (string) targetKey + "]"; + if (SHOW_NAME) match_description += llKey2Name(targetKey) + " "; + if (SHOW_POSITION) { + vector targetPos = llList2Vector(global_positions_found, i); + match_description += "@ " + vector_to_string(targetPos) + " "; + } + if (SHOW_UUID) match_description += "[" + (string)targetKey + "]"; } llSay(0, "\n" + match_description); } @@ -424,7 +452,7 @@ show_matches() for (i = 0; i < len; i++) { key targetKey = llList2Key(global_matches_found, i); vector targetPos = llList2Vector(global_positions_found, i); - point_at_with_particles(which_locater++, targetKey, targetPos); + point_at_with_particles(which_locater++, targetKey, targetPos, PRESENT_ARMS_STYLE); } } @@ -464,7 +492,7 @@ show_off_what_was_found() { // show the positions of what was found. show_matches(); - llSetTimerEvent(SNOOZE_BEFORE_RESET); + set_timer(SNOOZE_BEFORE_RESET); reset_for_next_timer = TRUE; } @@ -493,7 +521,7 @@ integer finish_spiral_traversal() //log_it("finish spiral success, showing off matches"); // this object has done enough spiraling. - llSetTimerEvent(NORMAL_TIMER_INTERVAL); // turn off jump timer. + set_timer(NORMAL_TIMER_INTERVAL); // turn off jump timer. running_a_search = FALSE; // reset our state since the search is done. show_off_what_was_found(); return FALSE; @@ -637,17 +665,6 @@ process_jaunt_response(string str) reset_search() { - reset_for_next_timer = FALSE; - - llSetTimerEvent(NORMAL_TIMER_INTERVAL); // back to slow timer hits. - reset_rod(ALL_SEEKER_ALERT); // reset the pointers to camber position. - llSetRot(llEuler2Rot(ZERO_VECTOR)); // set the object to point at the zero vector. - - // set the home position to wherever we happen to be right now. - global_home_posn = clean_target(llGetPos()); - llSetPos(global_home_posn); // get us off the ground. - last_safe_target = global_home_posn; - global_current_step = 0; global_current_pass = 0; global_matches_found = []; @@ -663,7 +680,15 @@ reset_search() SEARCH_ROD_ANGULAR_SWEEP = (PI_BY_TWO / 4.0); // PI_BY_TWO / 4 is 22.25 degrees, which when turned into a sensor cone // will be a range of 45 degrees around the zero vector. - + + set_timer(NORMAL_TIMER_INTERVAL); // back to slow timer hits. + reset_rod(ALL_SEEKER_ALERT); // reset the pointers to camber position. + llSetRot(llEuler2Rot(ZERO_VECTOR)); // set the object to point at the zero vector. + + // set the home position to wherever we happen to be right now. + global_home_posn = clean_target(llGetPos()); + llSetPos(global_home_posn); // get us off the ground. + last_safe_target = global_home_posn; } initialize() @@ -671,6 +696,8 @@ initialize() llSay(0, "Initializing... this may take a few seconds."); auto_retire(); llSleep(0.2); // we ensure part of the claim above by waiting for sub-scripts to start. + // cannot initialize this in statics for some reason... + SEARCH_OBJECT_TYPE = SENSOR_TYPE_ALL; request_configuration(""); } @@ -689,7 +716,7 @@ finish_initializing() llSay(0, "Running and ready to search. Touch for more instructions."); - llSetTimerEvent(NORMAL_TIMER_INTERVAL); + set_timer(NORMAL_TIMER_INTERVAL); } // this points the rods at all angles we possibly can to get the best coverage. @@ -711,9 +738,9 @@ skew_rod_angles(integer show_particles) radius * llCos((float)which_child * angle_per_step / 2.0)>; vector target_location = llGetPos() + spinner; if (!show_particles) { - aim_at_position(which_child, target_location); + aim_at_position(which_child, target_location, PAS_CENTERED); } else { - point_at_with_particles(which_child, NULL_KEY, target_location); + point_at_with_particles(which_child, NULL_KEY, target_location, PAS_CENTERED); } } } @@ -803,32 +830,27 @@ handle_link_message(integer which, integer num, string msg, key id) apply_variable_definition(string var, string value) { //log_it("[" + var + "=" + value + "]"); - if (var == "max_matches") { - MAX_MATCHES = (integer)value; - } else if (var == "max_spiral_radius") { - MAX_SPIRAL_RADIUS = (float)value; - } else if (var == "sensor_max_range") { - SENSOR_MAX_RANGE = (float)value; - } else if (var == "huff_search_chat_channel") { + if (var == "max_matches") MAX_MATCHES = (integer)value; + else if (var == "max_spiral_radius") MAX_SPIRAL_RADIUS = (float)value; + else if (var == "sensor_max_range") SENSOR_MAX_RANGE = (float)value; + else if (var == "huff_search_chat_channel") { // we have to hook up our ears to the new channel here. if (listening_handle) llListenRemove(listening_handle); HUFF_SEARCH_CHAT_CHANNEL = (integer)value; listening_handle = llListen(HUFF_SEARCH_CHAT_CHANNEL, "", NULL_KEY, ""); - } else if (var == "traverse_lands") { - TRAVERSE_LANDS = (integer)value; - } else if (var == "spiral_loops") { - SPIRAL_LOOPS = (integer)value; - } else if (var == "total_steps") { - TOTAL_STEPS = (integer)value; - } else if (var == "max_spiral_traversals") { - MAX_SPIRAL_TRAVERSALS = (integer)value; - } else if (var == "search_rod_angular_sweep") { - SEARCH_ROD_ANGULAR_SWEEP = (float)value; - } else if (var == "travelling_upwards") { - TRAVELLING_UPWARDS = (integer)value; - } else if (var == "max_upwards_distance") { - MAX_UPWARDS_DISTANCE = (float)value; - } else { + } else if (var == "traverse_lands") TRAVERSE_LANDS = (integer)value; + else if (var == "spiral_loops") SPIRAL_LOOPS = (integer)value; + else if (var == "total_steps") TOTAL_STEPS = (integer)value; + else if (var == "max_spiral_traversals") MAX_SPIRAL_TRAVERSALS = (integer)value; + else if (var == "search_rod_angular_sweep") SEARCH_ROD_ANGULAR_SWEEP = (float)value; + else if (var == "travelling_upwards") TRAVELLING_UPWARDS = (integer)value; + else if (var == "max_upwards_distance") MAX_UPWARDS_DISTANCE = (float)value; + else if (var == "search_type") SEARCH_OBJECT_TYPE = (integer)value; + else if (var == "show_name") SHOW_NAME = (integer)value; + else if (var == "show_position") SHOW_POSITION = (integer)value; + else if (var == "show_uuid") SHOW_UUID = (integer)value; + else if (var == "present_arms") PRESENT_ARMS_STYLE = (integer)value; + else { if (DEBUGGING) log_it("unknown variable '" + var + "' tried to define value = " + value); } @@ -878,9 +900,9 @@ request_from_seeker(integer which_seeker, string parameters, string command) } // aim the specified seeker rod at the object with the key and position. -point_at_with_particles(integer which_seeker, key targetId, vector targetPosition) +point_at_with_particles(integer which_seeker, key targetId, vector targetPosition, integer pas_style) { - list paramList = [targetId, targetPosition]; + list paramList = [targetId, targetPosition, pas_style]; request_from_seeker(which_seeker, llDumpList2String(paramList, HUFFWARE_PARM_SEPARATOR), HUFF_SEARCH_POINT_PARTY); } @@ -916,7 +938,7 @@ request_configuration(string notecard_name) } // make sure we complete this in time. - llSetTimerEvent(STARTUP_TIME_ALLOWED); + set_timer(STARTUP_TIME_ALLOWED); } // this is used when we've totally failed to start up properly. @@ -1162,7 +1184,7 @@ state rerun { state_entry() { state default; } } state real_default { state_entry() { initialize(); } - state_exit() { llSetTimerEvent(0); } + state_exit() { set_timer(0); } on_rez(integer parm) { state default; } @@ -1194,14 +1216,14 @@ state real_default { // look for any objects near each seeker and in the direction it's pointing. // we double the arc we might need to try to get more matches. start_sensing(ALL_SEEKER_ALERT, SENSOR_MAX_RANGE, - SEARCH_ROD_ANGULAR_SWEEP, global_target_name, MAX_MATCHES); + SEARCH_ROD_ANGULAR_SWEEP, global_target_name, MAX_MATCHES, SEARCH_OBJECT_TYPE); // start stepping through our search spirals. - llSetTimerEvent(FAST_TIMER_INTERVAL); + set_timer(FAST_TIMER_INTERVAL); llSay(0, "Searching for " + global_target_name); } else if (is_prefix(msg, "#initialize")) { llResetScript(); } else if (is_prefix(msg, "#skew")) { - llSetTimerEvent(SNOOZE_BEFORE_RESET); + set_timer(SNOOZE_BEFORE_RESET); reset_for_next_timer = TRUE; skew_rod_angles(TRUE); } else if (is_prefix(msg, "#channel")) { @@ -1239,10 +1261,16 @@ state real_default { // note by fred huffhines: // much of this script was originally written by the attributed authors above. however, -// i have spent a ton of time improving this pair of scripts... (the brain and the -// search pointer). i've added pattern matching (rather than needing to know exact -// names), added the spiral search traversal method to improve search behavior and -// get more results, improved the particle streams, and other bits. i just recently added -// configurability from notecards for searchbert options and a menuing system to provide -// help and runtime control over some of the options. wheeee, it's been a lot of fun. +// i have spent a ton of time improving and adding features to this pair of scripts... +// (the brain and the search pointer). i've added pattern matching (rather than needing +// to know exact names for the search targets), added the spiral search traversal method +// to improve search behavior and get more results, improved the particle streams, and +// many other bits. i just recently added configurability from notecards for searchbert +// options and a menuing system to provide help and runtime control over some of the +// options (v46.3 or so?). wheeee, it's been a lot of fun. // --fred. +// more changes added recently, may-june 2012: selection of the types of objects to find, +// using the bit patterns for active, passive, and agent. control over what items are printed +// in match list (object uuid, name, and location). and the "present arms style", that controls +// how searchbert points at the matches. + diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_pointer_v10.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_pointer_v11.9.txt similarity index 82% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_pointer_v10.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_pointer_v11.9.txt index 8cdeb3f4..1f7d0f5b 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-search_pointer_v10.0.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-search_pointer_v11.9.txt @@ -1,15 +1,13 @@  // huffware script: huff-search pointer, by fred huffhines // -// note: parts of this script were written by the attributed authors below. -// // this script is one portion of a search system. the pointer is meant to be in a child prim. // it is told what to point at by the root prim. // // the newer version of this supports a search command that locates objects in the // direction specified. // -// original attributions: started life as "Particle Script 0.4, Created by Ama Omega, 3-7-2004" +// attributions: started life as "Particle Script 0.4, Created by Ama Omega, 3-7-2004" // some code in this script is also from: Christopher Omega. // // this script is licensed by the GPL v3 which is documented at: http://www.gnu.org/licenses/gpl.html @@ -31,16 +29,33 @@ integer REPLY_DISTANCE = 100008; // offset added to service's huffware id in re ////////////// string HUFF_SEARCH_RESET = "#reset#"; // returns the script to its starting state. +// constants for controlling how searchbert presents its arms when pointing. they are the +// Present Arms Styles (PAS). +integer PAS_CENTERED = 0; + // original style of arm positioning for searchbert. the arms are centered at the root prim's + // center, and they point towards the target. +integer PAS_OPPOSITE_WALL = 1; + // the arms will be positioned so that they start at the outer wall on the opposite side of + // the root prim from the target, and they point towards the target. basically it looks like + // they've been partly sucked inside searchbert. +integer PAS_NEAREST_WALL = 2; + // contrary to the opposite wall style, this starts the arms on the sphere's wall closest to the + // target and points the arm toward the target. the effect is somewhat like a hedgehog. +integer PAS_END_CENTERED = 3; + // the arms originate at the center of searchbert, and point towards the targets. string HUFF_SEARCH_POINT_PARTY = "#point_particles#"; - // aim at an object and show a particle stream leading to it. + // aim at an object and show a particle stream leading to it. parms are a UUID key for the + // target, the target location vector and a PAS value. string HUFF_SEARCH_JUST_POINT = "#just_point#"; - // aim at an object, but don't do any particles. + // aim at an object, but don't do any particles. parms are the target vector + // and a PAS value. string HUFF_SEARCH_SENSEI = "#sensor#"; // set up a sensor request for a search pattern. pings will cause // the pattern to be sought in names of nearby objects. the parameters are: // (1) the maximum range for the sensor, (2) the arc angle to use in sensing, // (3) the search pattern to look for in object names, (4) the maximum number - // of matches to look for. + // of matches to look for, (5) the type of objects to find (e.g. SENSOR_TYPE_ACTIVE + // or other values). string HUFF_SEARCH_STOP_SENSE = "#stop_sensor#"; // turn off the sensor but don't totally reset. string HUFF_SEARCH_PING = "#ping#"; @@ -52,9 +67,6 @@ string HUFF_SEARCH_MATCH_EVENT = "#match#"; // global variables... -// SENSOR_TYPE_ALL: a constant that tells the sensor to look for (ACTIVE|PASSIVE|AGENT). -integer SENSOR_TYPE_ALL = 7; - // AXIS_* constants, represent the unit vector 1 unit on the specified axis. vector AXIS_UP = <0.0, 0.0, 1.0>; vector AXIS_LEFT = <0.0, 1.0, 0.0>; @@ -80,6 +92,15 @@ integer our_link_number = 0; // this only happens when we have been made a sub-prim and are definitely not the root prim, // so it is our key for whether the prim should die if it becomes unlinked. +vector original_position = <-128, -128, -128>; // default we can count on. + // where did this arm start out, relative to the root prim? + +// SENSOR_TYPE_ALL: a constant that tells the sensor to look for (ACTIVE|PASSIVE|AGENT). +integer SENSOR_TYPE_ALL = 7; + +integer search_type; + // the type of objects being sought in the search. + // Mask Flags - set to TRUE to enable integer glow = TRUE; // Make the particles glow integer bounce = FALSE; // Make particles bounce on Z plane of object @@ -134,8 +155,6 @@ integer precision = 2; //Adjust the precision of the generated list. integer running_particles = FALSE; // is the particle system running? -///integer start_parm; // set from the on_rez parameter. - string float2String(float in) { return llGetSubString((string)in, 0, precision - 7); @@ -212,21 +231,17 @@ integer outside_of_sim(vector to_check) /////////////// -// SetLocalRot // In a linked set, points a child object to the rotation. // @param rot The rotation to rotate to. -SetLocalRot(rotation rot) +rotation LocalRot(rotation rot) { - if(llGetLinkNumber() > 1) - { - rotation locRot = llGetLocalRot(); - locRot.s = -locRot.s; // Invert local rot. - - rotation parentRot = locRot * llGetRot(); - parentRot.s = -parentRot.s; // Invert parent's rot. + rotation locRot = llGetLocalRot(); + locRot.s = -locRot.s; // Invert local rot. - llSetLocalRot(rot * parentRot); - } + rotation parentRot = locRot * llGetRot(); + parentRot.s = -parentRot.s; // Invert parent's rot. + + return rot * parentRot; } // Gets the rotation to point the specified axis at the specified position. @@ -238,10 +253,33 @@ rotation getRotToPointAxisAt(vector axis, vector target) return llGetRot() * llRotBetween(axis * llGetRot(), target - llGetPos()); } -// aims in the direction of the target. -aim_at(vector targetPos) +// aims in the direction of the target using a rod pointing style. +aim_at(vector targetPos, integer point_style) { - SetLocalRot(getRotToPointAxisAt(AXIS_UP, targetPos)); + if (llGetLinkNumber() <= 1) return; // no root prim mods. + list mods; + vector obj_size = (vector)llList2String(llGetLinkPrimitiveParams(LINK_ROOT, [PRIM_SIZE]), 0); + float radius = obj_size.x; // safe to assume for a sphere. + obj_size = (vector)llList2String(llGetLinkPrimitiveParams(llGetLinkNumber(), [PRIM_SIZE]), 0); + float arm_length = obj_size.z; // longest component. + // the default is to use our original placement for the intersection point. + vector intersect = original_position; + // see if they're using a different and interesting arms presentation. + if (point_style == PAS_OPPOSITE_WALL) { + intersect = <0, 0, arm_length / 2.0 - radius / 2.0> + * LocalRot(getRotToPointAxisAt(AXIS_UP, targetPos)); + } else if (point_style == PAS_NEAREST_WALL) { + intersect = <0, 0, arm_length / 2.0 + radius / 2.0> + * LocalRot(getRotToPointAxisAt(AXIS_UP, targetPos)); + } else if (point_style == PAS_END_CENTERED) { + intersect = <0, 0, arm_length / 2.0> + * LocalRot(getRotToPointAxisAt(AXIS_UP, targetPos)); + } + // use the proper rotation based on the target and place the arm at the intersection + // point we just computed. + mods += [ PRIM_POS_LOCAL, intersect, + PRIM_ROT_LOCAL, LocalRot(getRotToPointAxisAt(AXIS_UP, targetPos)) ]; + llSetPrimitiveParams(mods); } // locates the string "text" in the list to "search_in". @@ -256,13 +294,12 @@ integer find_in_list(list search_in, string text) return -1; } -// point_at -// Points up axis at targetPos, and emits a particle system at targetKey. -// @param targetKey The UUID of the target to emit particles to. -// @param targetPos The poaition of the target in region-local coordinates. -point_at(key targetKey, vector targetPos) +// points the upward axis at targetPos, and emits a particle system at targetKey. +// requires the UUID of the target to emit particles at, the position of the target +// in region-local coordinates, and the style to point the arm with. +point_at(key targetKey, vector targetPos, integer point_style) { - aim_at(targetPos); + aim_at(targetPos, point_style); target = targetKey; create_particles(); } @@ -441,7 +478,14 @@ state real_default auto_retire(); llParticleSystem([]); running_particles = FALSE; - SetLocalRot(<0.0, 0.0, 0.0, 1.0>); + if (original_position == <-128, -128, -128>) { + original_position = (vector)llList2String + (llGetLinkPrimitiveParams(llGetLinkNumber(), [PRIM_POS_LOCAL]), 0); + } + // can't initialize static with another static... + search_type = SENSOR_TYPE_ALL; + llSetLinkPrimitiveParams(llGetLinkNumber(), [ PRIM_ROT_LOCAL, + LocalRot(<0.0, 0.0, 0.0, 1.0>) ]); global_matches_found = []; record_link_num_if_useful(); } @@ -455,7 +499,8 @@ state real_default if (command == HUFF_SEARCH_RESET) { // returns to the normal state of the object. reset_sensors(); - SetLocalRot(<0, 0, 0, 1>); + llSetLinkPrimitiveParams(llGetLinkNumber(), [ PRIM_ROT_LOCAL, + LocalRot(<0.0, 0.0, 0.0, 1.0>), PRIM_POS_LOCAL, original_position ]); llParticleSystem([]); running_particles = FALSE; global_matches_found = []; @@ -465,13 +510,15 @@ state real_default list parsedParameters = llParseString2List(parameters, [HUFFWARE_PARM_SEPARATOR], []); key targetKey = (key)llList2String(parsedParameters, 0); vector targetPos = (vector)llList2String(parsedParameters, 1); - point_at(targetKey, targetPos); + integer point_style = (integer)llList2String(parsedParameters, 2); + point_at(targetKey, targetPos, point_style); } else if (command == HUFF_SEARCH_JUST_POINT) { // aim at an object, but don't do any particles. reset_sensors(); list parsedParameters = llParseString2List(parameters, [HUFFWARE_PARM_SEPARATOR], []); vector targetPos = (vector)llList2String(parsedParameters, 0); - aim_at(targetPos); + integer point_style = (integer)llList2String(parsedParameters, 1); + aim_at(targetPos, point_style); } else if (command == HUFF_SEARCH_SENSEI) { // set up a sensor request for a search pattern. pings will cause // the pattern to be sought in names of nearby objects. @@ -482,10 +529,7 @@ state real_default arc_angle = (float)llList2String(parsedParameters, 1); search_pattern = llToLower((string)llList2String(parsedParameters, 2)); MAX_LIST_LEN = (integer)llList2String(parsedParameters, 3); -if (!MAX_LIST_LEN) { -MAX_LIST_LEN = 17; -log_it("failed to get list length param"); -} + search_type = (integer)llList2String(parsedParameters, 4); } else if (command == HUFF_SEARCH_STOP_SENSE) { // turn off the sensor but don't totally reset yet. reset_sensors(); @@ -497,7 +541,7 @@ log_it("failed to get list length param"); radius = 5; if (!running_particles) create_particles(); // they want to check for objects right here, right now... - llSensor("", NULL_KEY, SENSOR_TYPE_ALL, max_range, arc_angle); + llSensor("", NULL_KEY, search_type, max_range, arc_angle); } } changed(integer change) { @@ -510,6 +554,10 @@ log_it("failed to get list length param"); // we had no link number recorded, so let's track this if needed. record_link_num_if_useful(); } + // if we were relinked, get the local position again, since it changes to relative + // after being linked to another prim. + original_position = (vector)llList2String + (llGetLinkPrimitiveParams(llGetLinkNumber(), [PRIM_POS_LOCAL]), 0); } } sensor(integer num_detected) { diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huff-update_client_v20.1.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huff-update_client_v20.1.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huff-update_client_v20.1.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huff-update_client_v20.1.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huffbee_bulb_v4.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huffbee_bulb_v4.7.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huffbee_bulb_v4.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huffbee_bulb_v4.7.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/hufflets_v6.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/hufflets_v6.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/hufflets_v6.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/hufflets_v6.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/huffware_id_registry_v3.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/huffware_id_registry_v3.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/huffware_id_registry_v3.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/huffware_id_registry_v3.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/inventory_exchanger_v3.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/inventory_exchanger_v3.7.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/inventory_exchanger_v3.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/inventory_exchanger_v3.7.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/invoke_nechung_v1.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/invoke_nechung_v1.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/invoke_nechung_v1.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/invoke_nechung_v1.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/jaunting_library_v15.9.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/jaunting_library_v15.9.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/jaunting_library_v15.9.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/jaunting_library_v15.9.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/jump_good_v6.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/jump_good_v6.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/jump_good_v6.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/jump_good_v6.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/mediatron_control_v7.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/mediatron_control_v7.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/mediatron_control_v7.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/mediatron_control_v7.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/menu_list_manager_v12.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/menu_list_manager_v12.7.txt similarity index 98% rename from huffware/huffotronic_eepaw_knowledge_v60.9/menu_list_manager_v12.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/menu_list_manager_v12.7.txt index 22ddbe46..b635291c 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/menu_list_manager_v12.4.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/menu_list_manager_v12.7.txt @@ -121,14 +121,14 @@ simply_display_menu(string menu_name, string title, list buttons, _private_global_av_key = av_key; integer menu_channel = random_channel(); - key listen_to = llGetOwner(); +/// key listen_to = llGetOwner(); //log_it("passing in key to use: " + (string)listen_to); llMessageLinked(LINK_THIS, MENUTINI_HUFFWARE_ID, SHOW_MENU_COMMAND, menu_name + HUFFWARE_PARM_SEPARATOR + title + HUFFWARE_PARM_SEPARATOR + wrap_item_list(buttons) + HUFFWARE_PARM_SEPARATOR + (string)menu_channel + HUFFWARE_PARM_SEPARATOR - + (string)listen_to); + + (string)av_key); } replace_vars_and_display_menu(integer menu_index, string av_name, string av_key) @@ -138,7 +138,7 @@ replace_vars_and_display_menu(integer menu_index, string av_name, string av_key) string button_text = llList2String(menu_button_lists, menu_index); simply_display_menu(llList2String(menu_names, menu_index), title, - llParseString2List(button_text, [HUFFWARE_ITEM_SEPARATOR], []), + llParseStringKeepNulls(button_text, [HUFFWARE_ITEM_SEPARATOR], []), av_name, av_key); } @@ -199,7 +199,7 @@ show_gift_menu(string av_name, string av_key) // handles a request for this library itself. process_hud_menu_mgr_request(integer sender, integer num, string msg, key id) { - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); if (msg == MENU_LIST_MGR_RESET) { llResetScript(); } else if (msg == MENU_LIST_MGR_ADD_MENU) { @@ -259,7 +259,7 @@ handle_link_message(integer sender, integer num, string msg, key id) || (msg != SHOW_MENU_COMMAND) ) return; // not for us. //log_it("menu reply: sndr=" + (string)sender + " num=" + (string)num + " msg=" + msg + " id=" + (string)id); - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); string menu_name = llList2String(parms, 0); string which_choice = llList2String(parms, 1); ///not used: key av_key = llList2String(parms, 2); diff --git a/huffware/huffotronic_jaunter_updater_v5.1/menutini_library_v5.9.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/menutini_library_v6.1.txt similarity index 97% rename from huffware/huffotronic_jaunter_updater_v5.1/menutini_library_v5.9.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/menutini_library_v6.1.txt index abd27116..347d2590 100755 --- a/huffware/huffotronic_jaunter_updater_v5.1/menutini_library_v5.9.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/menutini_library_v6.1.txt @@ -94,6 +94,7 @@ show_menu(string menu_name, string title, list buttons, _private_global_buttons = buttons; menu_system_channel = menu_channel; _private_global_av_key = listen_to; +//log_it("showing menu to " + llKey2Name(listen_to) + " with key " + (string)listen_to); if (DEBUGGING) { log_it("menu name: " + global_menu_name); log_it("title: " + _private_global_title); @@ -166,13 +167,14 @@ handle_link_message(integer sender, integer huff_id, string msg, key id) if (msg == SHOW_MENU_COMMAND) { _menu_base_start = 0; // reset the position in the menus. // separate the list out. -//log_it("id showing: " + id); - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); +//log_it("id showing: " + (string)id); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); +//log_it("parm len " + (string)llGetListLength(parms) + ", parms are: " + (string)parms); // toss any existing menu info. clear_menu(); //log_it("key here early: " + llList2String(parms, 4)); show_menu(llList2String(parms, 0), llList2String(parms, 1), - llParseString2List(llList2String(parms, 2), + llParseStringKeepNulls(llList2String(parms, 2), [HUFFWARE_ITEM_SEPARATOR], []), (integer)llList2String(parms, 3), (key)llList2String(parms, 4)); @@ -397,7 +399,7 @@ example_handle_link_message(integer sender, integer num, string msg, key id) { if (num != MENUTINI_HUFFWARE_ID + REPLY_DISTANCE) return; // not for us. if (msg != SHOW_MENU_COMMAND) return; // also not for us. - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); string menu_name = llList2String(parms, 0); string which_choice = llList2String(parms, 1); react_to_menu(menu_name, which_choice); diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/minnow_v10.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/minnow_v10.6.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/minnow_v10.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/minnow_v10.6.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/non-script_giver_v2.8.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/non-script_giver_v3.2.txt similarity index 92% rename from huffware/huffotronic_eepaw_knowledge_v60.9/non-script_giver_v2.8.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/non-script_giver_v3.2.txt index 07e7c93e..6759f73e 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/non-script_giver_v2.8.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/non-script_giver_v3.2.txt @@ -12,6 +12,10 @@ integer ONLY_GIVE_TO_OWNER = TRUE; // if this is true, then only the owner will receive a copy of the items. +integer USE_SCRIPT_NAME_FOR_FOLDER = FALSE; + // if this is set to true, then the objects will be given to the user in a folder named + // after *this* script, rather than the object in which the script lives. + integer GIVE_UNCOPYABLES = FALSE; // this flag is dangerous when true, because it means that uncopyable objects will still // be handed to the target. if that target refuses the non-copyable items, then the items @@ -24,6 +28,14 @@ integer DEBUGGING = FALSE; // set to true for noisier runs. key first_toucher; // tracks who clicked on the object to get contents. +// returns the proper folder name for the gifts to reside in, based on the choice made in +// USE_SCRIPT_NAME_FOR_FOLDER. +string folder_name() +{ + if (USE_SCRIPT_NAME_FOR_FOLDER) return llGetScriptName(); + else return llGetObjectName(); +} + // give out pictures, notecards, objects, etc. that are hiding in the object. really_give_out_contents(key give_to) { @@ -51,7 +63,7 @@ really_give_out_contents(key give_to) } } // hand the customer the whole set as one big chunk, named after the object. - llGiveInventoryList(give_to, llGetObjectName(), all_to_give); + llGiveInventoryList(give_to, folder_name(), all_to_give); // handle any problematic items. we cannot copy these objects into a category folder, // so we can either not try to copy them (a lot safer) or we can try to deliver them @@ -121,7 +133,7 @@ integer listening_id = 0; // the current id of our listening for the menu. it's an id returned by LSL // that we need to track so we can cancel the listen. -integer menu_system_channel = -123; +integer menu_system_channel = -123123; // messages come back to us from this channel when user clicks the dialog. // this is set later and the default is meaningless. @@ -284,6 +296,21 @@ integer find_substring(string full_string, string pattern) integer is_prefix(string compare_with, string prefix) { return (llSubStringIndex(compare_with, prefix) == 0); } +// returns a number at most "maximum" and at least "minimum". +// if "allow_negative" is TRUE, then the return may be positive or negative. +float randomize_within_range(float minimum, float maximum, integer allow_negative) +{ + if (minimum > maximum) { + // flip the two if they are reversed. + float temp = minimum; minimum = maximum; maximum = temp; + } + float to_return = minimum + llFrand(maximum - minimum); + if (allow_negative) { + if (llFrand(1.0) < 0.5) to_return *= -1.0; + } + return to_return; +} + ////////////// // huffware script: auto-retire, by fred huffhines, version 2.8. // distributed under BSD-like license. @@ -391,6 +418,9 @@ state real_default { state_entry() { auto_retire(); + // assign a random channel for the menu or we could be hearing others + // menu responses. + menu_system_channel = -1 * (integer)randomize_within_range(256, 248248, FALSE); } on_rez(integer param) { llResetScript(); } @@ -402,7 +432,8 @@ state real_default first_toucher = NULL_KEY; return; // bail out. } - show_menu("askreally", "Would you like a copy of this object's contents?", + show_menu("askreally", "\nWould you like a copy of this object's contents? " + + "They will be put in a folder named " + folder_name() + ".", ["yes", "no"], -18264, first_toucher); } diff --git a/huffware/huffotronic_jaunter_updater_v5.1/noteworthy_library_v12.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/noteworthy_library_v12.5.txt similarity index 98% rename from huffware/huffotronic_jaunter_updater_v5.1/noteworthy_library_v12.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/noteworthy_library_v12.5.txt index 4d56bac0..57b3f32e 100755 --- a/huffware/huffotronic_jaunter_updater_v5.1/noteworthy_library_v12.4.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/noteworthy_library_v12.5.txt @@ -18,11 +18,13 @@ integer DEBUGGING = FALSE; // if this is true, then a lot of extra noise is generated when notecards are read. -float TIME_OUT_ON_ONE_NOTECARD = 42.0; +float TIME_OUT_ON_ONE_NOTECARD = 10.0; // we allow one line of a notecard this long to be read before we decide it's hosed. // some sims are very very slow, and a time-out of one minute has been found lacking; // we saw at least one case where the first notecard line to be read took longer than // 60 seconds. that's why we kept cranking this time-out up... + // but now is the time for non-craziness, and that's absolutely crazy to wait that long. + // exploring the 10 second allottance time frame... // constants that should not be changed... @@ -166,6 +168,8 @@ integer try_next_notecard() } // so, now we'll try the next notecard to look for our signature. select_notecard(trying_notecard_at); + // reset the timer in case we were close on the last card. + llSetTimerEvent(TIME_OUT_ON_ONE_NOTECARD); return TRUE; } diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/particle_projector_v3.1.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/particle_projector_v3.1.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/particle_projector_v3.1.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/particle_projector_v3.1.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/party_culiar_v5.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/party_culiar_v6.1.txt similarity index 96% rename from huffware/huffotronic_eepaw_knowledge_v60.9/party_culiar_v5.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/party_culiar_v6.1.txt index ed0382a9..53613cd9 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/party_culiar_v5.7.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/party_culiar_v6.1.txt @@ -35,6 +35,8 @@ string PARTYCULIAR_POWER_COMMAND = "#powrpcl"; float MIN_ROTATION = 0.1; // rotations used for omega value to rotate particles. float MAX_ROTATION = 4.0; +integer MAX_NOTECARD_READ_TIME = 34; + // items controlled by the notecard... // noisiness... @@ -106,10 +108,14 @@ string current_notecard_name; // the name of the card we're reading now. key current_query_id; // the query ID for the current notecard. list query_contents; // the lines we have read from the notecard. integer line_number; // which line are we at in notecard? +integer notecard_good = FALSE; // is the notecard usable? +integer current_notecard; // what notecard are we at in inventory? initialize() { current_notecard_name = ""; + current_notecard = 0; + notecard_good = FALSE; current_query_id = NULL_KEY; query_contents = []; line_number = 0; @@ -338,14 +344,16 @@ stop_timer() { llSetTimerEvent(0.0); } check_for_notecard() { - if (current_notecard_name != "") return; // if there's a notecard, then we will start reading it. - if (llGetInventoryNumber(INVENTORY_NOTECARD) > 0) { - current_notecard_name = llGetInventoryName(INVENTORY_NOTECARD, 0); + if (llGetInventoryNumber(INVENTORY_NOTECARD) > current_notecard) { + current_notecard_name = llGetInventoryName(INVENTORY_NOTECARD, current_notecard++); line_number = 0; query_contents = []; current_query_id = llGetNotecardLine(current_notecard_name, 0); - llSetTimerEvent(80); + llSetTimerEvent(MAX_NOTECARD_READ_TIME); + } else { + log_it("No appropriate notecard was found. Shutting down."); + llSetTimerEvent(0); } } @@ -572,9 +580,9 @@ state real_default } timer() { - if (current_query_id != NULL_KEY) { + if ( (current_query_id != NULL_KEY) || !notecard_good) { // there's been a failure of some sort; we were supposed to get a notecard to read. - llWhisper(0, "Failed to read the notecard, now restarting."); + llWhisper(0, "Failed to read the config notecard; restarting."); llResetScript(); } create_particle_system(); @@ -600,7 +608,8 @@ state real_default dataserver(key query_id, string data) { if (query_id != current_query_id) { -log_it("not our query id somehow? weird query had: id=" + (string)query_id + " data=" + (string)data); + log_it("not our query id somehow? weird query had: id=" + + (string)query_id + " data=" + (string)data); // to heck with all this weirdness; if there's a failure, start over. llResetScript(); } @@ -610,6 +619,9 @@ log_it("not our query id somehow? weird query had: id=" + (string)query_id + " if (data != "#party culiar") { // this card has the wrong signature at the top. quit bothering // with it now. + log_it("wrong notecard signature found in " + current_notecard_name + + "; skipping to next card."); + check_for_notecard(); return; } log_it("starting to read notecard " + current_notecard_name + "..."); @@ -630,6 +642,8 @@ log_it("not our query id somehow? weird query had: id=" + (string)query_id + " current_notecard_name = ""; // toss bad card. return; } + // we set this just for getting to the point of having read the whole thing. + notecard_good = TRUE; //log_it("notecard said:\n" + dump_list(query_contents)); process_particle_settings(query_contents); if (start_enabled) { diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/phantomizer_v1.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/phantomizer_v1.6.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/phantomizer_v1.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/phantomizer_v1.6.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/puffer_v1.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/puffer_v1.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/puffer_v1.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/puffer_v1.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/radio_tuner_v1.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/radio_tuner_v1.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/radio_tuner_v1.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/radio_tuner_v1.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/rezzeroni_v20.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/rezzeroni_v21.0.txt similarity index 97% rename from huffware/huffotronic_eepaw_knowledge_v60.9/rezzeroni_v20.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/rezzeroni_v21.0.txt index 0e162579..3e215fe2 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/rezzeroni_v20.2.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/rezzeroni_v21.0.txt @@ -60,7 +60,7 @@ list global_config_list; // a collection of configuration parameters from our n // globals tracking the current rezzing run. list already_done_items; // the items that are finished being rezzed, since they have no rate. integer rezzed_overall; // a count of the number of rezzes during this run. -list gift_stack; // a stack of items to hand to newly rezzed objects. +list gift_queue; // a list of items to hand to newly rezzed objects. // somewhat ugly rez plan globals. integer global_config_index; // where are we in the config list? string global_singleton_checker; // is a singleton object being sensor checked? @@ -128,6 +128,18 @@ string wrap_parameters(list to_flatten) { return llDumpList2String(to_flatten, HUFFWARE_PARM_SEPARATOR); } ////////////// + +//hmmm: move to hufflets. +// sets the timer period, while making sure that bugs about the timer are dealt with. +set_timer(float timer_period) +{ +//log_it("setting timer event for " + (string)timer_period + "s."); + llSetTimerEvent(0.0); + llSetTimerEvent(timer_period); +} + + + // looks for a notecard with our signature in it and reads the configuration. // an empty string is returned if we couldn't find anything. request_configuration() @@ -246,7 +258,7 @@ list build_rezzing_list() integer num_inv = llGetInventoryNumber(INVENTORY_OBJECT); if (num_inv == 0) { log_it("Inventory is empty; please add objects to rez."); - llSetTimerEvent(0.0); // stop the timer; nothing further to do. + set_timer(0.0); // stop the timer; nothing further to do. return []; } //hmmm: all has never been tested. @@ -417,7 +429,7 @@ integer perform_rezzing_action() string inv_name = gift_card_name + (string)rezzed_overall; if (find_in_inventory(inv_name, INVENTORY_NOTECARD) >= 0) { // this inventory item exists, so use it. - gift_stack += [ inv_name]; + gift_queue += [ inv_name]; } } global_singleton_checker = ""; // reset singleton checker for next object. @@ -445,8 +457,7 @@ integer perform_rezzing_action() // returns true if the state should change. integer handle_timer() { - // make sure we run at the fast rate; we'll reset the rate elsewhere if needed. - llSetTimerEvent(BASE_TIMER_PERIOD); +// log_it("into handle timer."); if (!is_enabled_now) { if (jaunt_responses_awaited > 0) { @@ -458,12 +469,12 @@ integer handle_timer() attempt_to_go_home(); return FALSE; } - if (llGetListLength(gift_stack)) { + if (llGetListLength(gift_queue)) { if (SUPER_NOISY_DEBUG) log_it("done rez, but still pending gifts."); return FALSE; } if (SUPER_NOISY_DEBUG) log_it("done rez, totally done."); - llSetTimerEvent(0.0); + set_timer(0.0); return TRUE; } @@ -472,7 +483,7 @@ integer handle_timer() if (run_time > max_run_time) { log_it("Maximum run time elapsed; shutting down."); is_enabled_now = FALSE; - llSetTimerEvent(0.0); + set_timer(0.0); return TRUE; } @@ -488,7 +499,7 @@ integer handle_timer() // we were told not to keep going. if this is a periodic run, // then we'll snooze until the next time. if (obj_rezzing_period != 0.0) { - llSetTimerEvent(obj_rezzing_period); + set_timer(obj_rezzing_period); finished_file = FALSE; } } @@ -718,7 +729,7 @@ crank_rezzer_up() recent_items_rezzed = 0; // nothing rezzed recently. jaunt_responses_awaited = 0; // no jumps in progress. rezzed_overall = 0; // nothing has been rezzed yet. - gift_stack = []; // no gifts waiting yet. + gift_queue = []; // no gifts waiting yet. request_configuration(); // try to find a notecard and read our config. @@ -739,11 +750,11 @@ integer debug_num = 0; log_it(string to_say) { debug_num++; - if (!SUPER_NOISY_DEBUG) { + if (SUPER_NOISY_DEBUG) { // say this on open chat. - llSay(0, "[" + (string)debug_num + "] " + to_say); + llSay(0, llGetScriptName() + "[" + (string)debug_num + "] " + to_say); } else { - // tell this to the owner. + // tell this to just the owner. llOwnerSay(llGetScriptName() + "[" + (string)debug_num + "] " + to_say); } } @@ -958,7 +969,7 @@ state awaiting_commands { state_entry() { if (DEBUGGING) log_it(""); - llSetTimerEvent(0.0); + set_timer(0.0); if (trigger_stop_message) if (DEBUGGING) log_it("rezzer finished. [free mem=" + (string)llGetFreeMemory() + "]"); trigger_stop_message = TRUE; // always say it next time. @@ -1013,17 +1024,17 @@ state running_rez_plan state_entry() { if (DEBUGGING) log_it(""); llListen(0, "", NULL_KEY, ""); - llSetTimerEvent(BASE_TIMER_PERIOD); + set_timer(BASE_TIMER_PERIOD); } - state_exit() { llSetTimerEvent(0); } + state_exit() { set_timer(0); } // we got clicked. touch_start(integer count) { if (owner_only && (llDetectedKey(0) != llGetOwner())) return; // disable the rezzing process. is_enabled_now = FALSE; - llSetTimerEvent(BASE_TIMER_PERIOD); + set_timer(BASE_TIMER_PERIOD); // now we must allow the timer to handle the return process. } @@ -1031,18 +1042,21 @@ state running_rez_plan listen(integer channel, string name, key id, string message) { if (owner_only && (llDetectedKey(0) != llGetOwner())) return; if (handle_hearing_voices(channel, name, id, message)) is_enabled_now = FALSE; - llSetTimerEvent(BASE_TIMER_PERIOD); + set_timer(BASE_TIMER_PERIOD); } timer() { if (handle_timer()) state awaiting_commands; } +//to fix ordering problem, we need the object to announce its start parm to us. +//queue structure no longer good since we don't know which rez is which; need +//to have indexable array until all kids are set up. object_rez(key id) { if (SUPER_NOISY_DEBUG) log_it("heard object rez: id=" + (string)id); - if (!llGetListLength(gift_stack)) return; // no gifts to hand out. - string new_gift = llList2String(gift_stack, 0); - gift_stack = llDeleteSubList(gift_stack, 0, 0); + if (!llGetListLength(gift_queue)) return; // no gifts to hand out. + string new_gift = llList2String(gift_queue, 0); + gift_queue = llDeleteSubList(gift_queue, 0, 0); if (find_in_inventory(new_gift, INVENTORY_NOTECARD) < 0) { // missing the present. this seems remarkable. log_it("could not find gift specified: " + new_gift); diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/rotanium_rotato_v2.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/rotanium_rotato_v2.7.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/rotanium_rotato_v2.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/rotanium_rotato_v2.7.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_armature_v15.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_armature_v15.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_armature_v15.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_armature_v15.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_config_v1.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_config_v1.2.txt new file mode 100755 index 00000000..5df4ac24 --- /dev/null +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_config_v1.2.txt @@ -0,0 +1,41 @@ +#searchbert + +# chat channel searchbert listens on for commands. +huff_search_chat_channel = 0 + +# can point to max of 17 things. +max_matches = 17 +# how far to sense objects, in meters. +sensor_max_range = 96.0 +# width of angle to sense with. default is pi / 2 (90 degrees). +search_rod_angular_sweep = 1.57079632679 + +# radius of circle circumscribing entire spiral. +max_spiral_radius = 72.0 +# how many loops (# vector crossings from center of spiral). +spiral_loops = 7 +# total jumps along the spiral. +total_steps = 42 +# times to run same spiral. +max_spiral_traversals = 1 + +# vertical traversal mode (0=off, 1=on) +travelling_upwards = 0 +# max upwards offset for vertical search. +max_upwards_distance = 30.0 + +# cross land-owner boundaries during search? +traverse_lands = 0 + +# type of objects or avs to find; a bit-wise 'or' operation, agent = 1, active = 2, passive = 4, scripted = 8 +# default of 7 includes all but scripted (scripted is exclusive, others are inclusive). +search_type = 7 + +# show_X: control how the results are displayed. +show_name = 1 +show_position = 1 +show_uuid = 0 + +# how searchbert will present arms: 0 middles centered, 1 sucked in, 2 pushed out, 3 edge centered. +present_arms = 0 + diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_menus_v4.6.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_menus_v5.2.txt similarity index 88% rename from huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_menus_v4.6.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_menus_v5.2.txt index 719813c2..283871c5 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/searchbert_menus_v4.6.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/searchbert_menus_v5.2.txt @@ -29,11 +29,15 @@ string RESET_CHOICE = "Reset"; // configuration menu items... string MAX_MATCHES_CHOICE = "Max Match"; string CHAT_CHANNEL_CHOICE = "Channel"; +string SEARCH_TYPE_CHOICE = "SearchType"; +string PRESENT_ARMS_CHOICE = "PresentArms"; // menu indices... integer MAIN_MENU_INDEX = 0; // we always do main menu as zero. integer CONFIG_MENU_INDEX = 1; // choices for configurable items. integer MAX_MATCHES_MENU_INDEX = 2; // changing the number of matches. +integer SEARCH_TYPE_CHOICE_INDEX = 3; // menu for search types. +integer PRESENT_ARMS_CHOICE_INDEX = 4; // menu for searchbert arm styles. // searchbert menus API. ////////////// @@ -158,8 +162,9 @@ prepare_all_menus() // configuration menu provides tasty options for changing the way searchbert behaves. string menu_name = CONFIG_CHOICE; // reusing menu button from main menu for the menu name. - string menu_title = "Configurable Options...\n[" + MAX_MATCHES_CHOICE + "] selects number of items to find.\n[" + CHAT_CHANNEL_CHOICE + "] changes listening channel for commands.\n"; - list menu_button_list = [ MAX_MATCHES_CHOICE, CHAT_CHANNEL_CHOICE ]; + string menu_title = "Configurable Options...\n[" + MAX_MATCHES_CHOICE + "] selects number of items to find.\n[" + CHAT_CHANNEL_CHOICE + "] changes listening channel for commands.\n[" + SEARCH_TYPE_CHOICE + "] selects types to find.\n[" + PRESENT_ARMS_CHOICE + "] arm style for pointing"; + list menu_button_list = [ MAX_MATCHES_CHOICE, CHAT_CHANNEL_CHOICE, + SEARCH_TYPE_CHOICE, PRESENT_ARMS_CHOICE ]; add_menu(menu_name, menu_title, menu_button_list); menu_name = MAX_MATCHES_CHOICE; // reusing menu button from config menu. @@ -167,6 +172,16 @@ prepare_all_menus() menu_button_list = produce_nums(17); // ultimate number of arms available (magic constant!). add_menu(menu_name, menu_title, menu_button_list); + menu_name = SEARCH_TYPE_CHOICE; // reusing type button too. + menu_title = "Look for what types?:\n1=Agent, 2=Active,\n3=Agent+Active, 4=Passive,\n5=Agent+Passive, 6=Agent+Passive\n7=Agent+Active+Passive (i.e. anything)"; + menu_button_list = produce_nums(7); // max bit pattern to allow. + add_menu(menu_name, menu_title, menu_button_list); + + menu_name = PRESENT_ARMS_CHOICE; // this is becoming a trend. + menu_title = "Which arm pointing style should be used?\n0 = arm middles centered\n1 = arm ends at opposite wall\n2 = arm ends at nearest wall\n3 = arm ends centered"; + menu_button_list = [ "0" ] + produce_nums(3); // 0, plus 1-3. + add_menu(menu_name, menu_title, menu_button_list); + } // if we haven't initialized yet, we'll do it now. @@ -198,7 +213,7 @@ handle_link_message(integer sender, integer num, string msg, key id) // make sure we're already initialized. maybe_really_setup_menus(); - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); if (num == MENU_LIST_MANAGER_HUFFWARE_ID + REPLY_DISTANCE) { if (msg == MENU_LIST_MGR_CHOICE_MADE_ALERT) { @@ -225,7 +240,7 @@ request_menu_popup(integer menu_index, string av_name, string av_key) { llMessageLinked(LINK_ROOT, MENU_LIST_MANAGER_HUFFWARE_ID, MENU_LIST_MGR_SHOW_MENU, wrap_parameters([menu_index, av_name, av_key])); -//log_it("sent menu popup... memory left=" + (string)llGetFreeMemory()); +//log_it("sent menu popup to av " + av_name + " with key " + av_key + "... memory left=" + (string)llGetFreeMemory()); } // generates a list of numbers up to and including the "max". @@ -279,9 +294,15 @@ process_menu_choice(string menu_name, string av_name, string av_key, string whic llSay(0, "To change the chat channel, say '" + channel_string() + "#channel N' where N is your new channel number."); return; + } else if (which_choice == SEARCH_TYPE_CHOICE) { + // ask what types to allow. + request_menu_popup(SEARCH_TYPE_CHOICE_INDEX, av_name, av_key); + return; + } else if (which_choice == PRESENT_ARMS_CHOICE) { + // ask them how they want their arms arranged. + request_menu_popup(PRESENT_ARMS_CHOICE_INDEX, av_name, av_key); + return; } -//more config options... - } else if (menu_name == MAX_MATCHES_CHOICE) { integer max = (integer)which_choice; if (max >= 1) { @@ -290,6 +311,23 @@ process_menu_choice(string menu_name, string av_name, string av_key, string whic llSay(0, "Maximum number of matches is now set to " + (string)max + "."); return; } + } else if (menu_name == SEARCH_TYPE_CHOICE) { + integer type = (integer)which_choice; + if (type >= 1) { + // set the types to look for during the search. + send_data_burst(["search_type", type]); + llSay(0, "Search type now set to " + (string)type + "."); + return; + } + } else if (menu_name == PRESENT_ARMS_CHOICE) { + integer pas_type = (integer)which_choice; + send_data_burst(["present_arms", pas_type]); + string arm_type = "middles centered"; + if (pas_type == 1) arm_type = "opposite wall"; + else if (pas_type == 2) arm_type = "nearer wall"; + else if (pas_type == 3) arm_type = "ends centered"; + llSay(0, "Arm presentation style is now " + arm_type + "."); + return; } // cases that aren't handled get forwarded to the client script. @@ -493,7 +531,7 @@ state real_default initialize(); } - on_rez(integer parm) { llResetScript(); } + on_rez(integer parm) { state default; } timer() { handle_timer_hit(); } diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/set_comparator_library_v4.1.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/set_comparator_library_v4.1.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/set_comparator_library_v4.1.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/set_comparator_library_v4.1.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/slate_reader_v1.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/slate_reader_v1.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/slate_reader_v1.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/slate_reader_v1.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/star_chair_sitting_config_v0.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/star_chair_sitting_config_v0.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/star_chair_sitting_config_v0.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/star_chair_sitting_config_v0.4.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/take_touches_v0.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/take_touches_v0.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/take_touches_v0.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/take_touches_v0.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/text_label_v3.9.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/text_label_v4.1.txt similarity index 81% rename from huffware/huffotronic_eepaw_knowledge_v60.9/text_label_v3.9.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/text_label_v4.1.txt index 0fddf076..d01aa188 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/text_label_v3.9.txt +++ b/huffware/huffotronic_eepaw_knowledge_v62.5/text_label_v4.1.txt @@ -5,11 +5,11 @@ // // this script is licensed by the GPL v3 which is documented at: http://www.gnu.org/licenses/gpl.html // do not use it in objects without fully realizing you are implicitly accepting that license. -// string OBJECT_LABEL = "default"; // change this if you want a specific name. -vector LABEL_COLOR = <0.3, 0.9, 0.4>; // color of the text above object. +float MAX_COLOR_VALUE = 1; // brightest color component (R, G or B) for the text. +float MIN_COLOR_VALUE = 0.4; // darkest color component (R, G or B) for the text. set_text() { @@ -28,7 +28,8 @@ set_text() } } //log_it("setting text: " + object_label); - llSetText(object_label, LABEL_COLOR, 1.0); + vector label_color = random_vector(MIN_COLOR_VALUE, MAX_COLOR_VALUE, FALSE); + llSetText(object_label, label_color, 1.0); } ////////////// @@ -54,6 +55,39 @@ log_it(string to_say) integer find_substring(string full_string, string pattern) { return llSubStringIndex(llToLower(full_string), llToLower(pattern)); } +// returns a number at most "maximum" and at least "minimum". +// if "allow_negative" is TRUE, then the return may be positive or negative. +float randomize_within_range(float minimum, float maximum, integer allow_negative) +{ + if (minimum > maximum) { + // flip the two if they are reversed. + float temp = minimum; minimum = maximum; maximum = temp; + } + float to_return = minimum + llFrand(maximum - minimum); + if (allow_negative) { + if (llFrand(1.0) < 0.5) to_return *= -1.0; + } + return to_return; +} + +// returns a random vector where x,y,z will be between "minimums" and "maximums" +// x,y,z components. if "allow_negative" is true, then any component will +// randomly be negative or positive. +vector random_bound_vector(vector minimums, vector maximums, integer allow_negative) +{ + return ; +} + +// returns a vector whose components are between minimum and maximum. +// if allow_negative is true, then they can be either positive or negative. +vector random_vector(float minimum, float maximum, integer allow_negative) +{ + return random_bound_vector(, + , allow_negative); +} + ////////////// // huffware script: auto-retire, by fred huffhines, version 2.8. // distributed under BSD-like license. diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/texture_mover_v3.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/texture_mover_v3.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/texture_mover_v3.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/texture_mover_v3.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/texture_shower_v2.7.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/texture_shower_v2.7.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/texture_shower_v2.7.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/texture_shower_v2.7.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/viewscreen_blitter_v3.9.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/viewscreen_blitter_v3.9.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/viewscreen_blitter_v3.9.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/viewscreen_blitter_v3.9.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/weapon_fire_v2.2.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/weapon_fire_v2.2.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/weapon_fire_v2.2.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/weapon_fire_v2.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/welcomebot_v4.0.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/welcomebot_v4.0.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/welcomebot_v4.0.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/welcomebot_v4.0.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/wylie_controller_v8.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/wylie_controller_v8.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/wylie_controller_v8.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/wylie_controller_v8.4.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/zap_updater_from_elevators_v1.3.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/zap_updater_from_elevators_v1.3.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/zap_updater_from_elevators_v1.3.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/zap_updater_from_elevators_v1.3.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/zenmondos_mailbox_v0.4.txt b/huffware/huffotronic_eepaw_knowledge_v62.5/zenmondos_mailbox_v0.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/zenmondos_mailbox_v0.4.txt rename to huffware/huffotronic_eepaw_knowledge_v62.5/zenmondos_mailbox_v0.4.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/Hyper_Jump_Wilder_Westen_v0.2.txt b/huffware/huffotronic_jaunter_updater_v5.3/Hyper_Jump_Wilder_Westen_v0.2.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/Hyper_Jump_Wilder_Westen_v0.2.txt rename to huffware/huffotronic_jaunter_updater_v5.3/Hyper_Jump_Wilder_Westen_v0.2.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/a_huffotronic_update_server_v23.2.txt b/huffware/huffotronic_jaunter_updater_v5.3/a_huffotronic_update_server_v23.3.txt similarity index 98% rename from huffware/huffotronic_tools_n_testers_v6.1/a_huffotronic_update_server_v23.2.txt rename to huffware/huffotronic_jaunter_updater_v5.3/a_huffotronic_update_server_v23.3.txt index ef201cf7..fbba630b 100755 --- a/huffware/huffotronic_tools_n_testers_v6.1/a_huffotronic_update_server_v23.2.txt +++ b/huffware/huffotronic_jaunter_updater_v5.3/a_huffotronic_update_server_v23.3.txt @@ -476,14 +476,13 @@ propel_upgrade_process(integer channel, key id, string message) // assume it's a script, and use script pin to stuff it. curr = backpatch_script_name(curr); if (curr != "") { -// integer starting_state = FALSE; -// second life was okay with scripts being plugged in unstarted. opensim is not. -// and second life appears to be unhappy with scripts plugged in as started. so we -// have an impasse. -// this should be: true for opensim, and false for second life. - integer starting_state = IS_OPENSIM; + // second life was okay with scripts being plugged in unstarted; opensim is not. + // and second life appears to be unhappy when scripts are added to objects in + // a running state. so we have an impasse. so 'running' should be true + // for opensim, and false for second life. + integer running = IS_OPENSIM; // if (DEBUGGING) log_it("installing script using updater pin."); - llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, starting_state, 0); + llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, running, 0); } } } @@ -785,7 +784,7 @@ scrub_items_by_type(string this_guy, integer inventory_type) } if (IS_OPENSIM && (llGetListLength(removal_list) > 0) ) { - log_it("now restarting to avoid opensim late updating change event."); +// log_it("now restarting to avoid opensim late updating change event."); llResetScript(); } } diff --git a/huffware/huffotronic_jaunter_updater_v5.1/aqua_config_v0.5.txt b/huffware/huffotronic_jaunter_updater_v5.3/aqua_config_v0.5.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/aqua_config_v0.5.txt rename to huffware/huffotronic_jaunter_updater_v5.3/aqua_config_v0.5.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/child_jaunter_v85.2.txt b/huffware/huffotronic_jaunter_updater_v5.3/child_jaunter_v85.2.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/child_jaunter_v85.2.txt rename to huffware/huffotronic_jaunter_updater_v5.3/child_jaunter_v85.2.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/coastal_connector_hubs_v2.4.txt b/huffware/huffotronic_jaunter_updater_v5.3/coastal_connector_hubs_v2.4.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/coastal_connector_hubs_v2.4.txt rename to huffware/huffotronic_jaunter_updater_v5.3/coastal_connector_hubs_v2.4.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/data_cow_v3.3.txt b/huffware/huffotronic_jaunter_updater_v5.3/data_cow_v3.3.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/data_cow_v3.3.txt rename to huffware/huffotronic_jaunter_updater_v5.3/data_cow_v3.3.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/emptiness_jaunter_config_v0.2.txt b/huffware/huffotronic_jaunter_updater_v5.3/emptiness_jaunter_config_v0.2.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/emptiness_jaunter_config_v0.2.txt rename to huffware/huffotronic_jaunter_updater_v5.3/emptiness_jaunter_config_v0.2.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/fred_main_hubs_v5.4.txt b/huffware/huffotronic_jaunter_updater_v5.3/fred_main_hubs_v5.4.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/fred_main_hubs_v5.4.txt rename to huffware/huffotronic_jaunter_updater_v5.3/fred_main_hubs_v5.4.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/hal9000_config_v0.4.txt b/huffware/huffotronic_jaunter_updater_v5.3/hal9000_config_v0.4.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/hal9000_config_v0.4.txt rename to huffware/huffotronic_jaunter_updater_v5.3/hal9000_config_v0.4.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/hamstertram_config_v7.8.txt b/huffware/huffotronic_jaunter_updater_v5.3/hamstertram_config_v7.8.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/hamstertram_config_v7.8.txt rename to huffware/huffotronic_jaunter_updater_v5.3/hamstertram_config_v7.8.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/huff-update_client_v20.1.txt b/huffware/huffotronic_jaunter_updater_v5.3/huff-update_client_v20.1.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/huff-update_client_v20.1.txt rename to huffware/huffotronic_jaunter_updater_v5.3/huff-update_client_v20.1.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/jaunt_config_funcs_v2.9.txt b/huffware/huffotronic_jaunter_updater_v5.3/jaunt_config_funcs_v2.9.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/jaunt_config_funcs_v2.9.txt rename to huffware/huffotronic_jaunter_updater_v5.3/jaunt_config_funcs_v2.9.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/jaunt_rezolator_v22.3.txt b/huffware/huffotronic_jaunter_updater_v5.3/jaunt_rezolator_v22.3.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/jaunt_rezolator_v22.3.txt rename to huffware/huffotronic_jaunter_updater_v5.3/jaunt_rezolator_v22.3.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/jaunt_wik_rez_v86.3.txt b/huffware/huffotronic_jaunter_updater_v5.3/jaunt_wik_rez_v86.3.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/jaunt_wik_rez_v86.3.txt rename to huffware/huffotronic_jaunter_updater_v5.3/jaunt_wik_rez_v86.3.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/jaunter_button_pusher_v0.8.txt b/huffware/huffotronic_jaunter_updater_v5.3/jaunter_button_pusher_v0.8.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/jaunter_button_pusher_v0.8.txt rename to huffware/huffotronic_jaunter_updater_v5.3/jaunter_button_pusher_v0.8.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/jaunting_library_v15.9.txt b/huffware/huffotronic_jaunter_updater_v5.3/jaunting_library_v15.9.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/jaunting_library_v15.9.txt rename to huffware/huffotronic_jaunter_updater_v5.3/jaunting_library_v15.9.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/menutini_library_v5.9.txt b/huffware/huffotronic_jaunter_updater_v5.3/menutini_library_v6.1.txt similarity index 97% rename from huffware/huffotronic_eepaw_knowledge_v60.9/menutini_library_v5.9.txt rename to huffware/huffotronic_jaunter_updater_v5.3/menutini_library_v6.1.txt index abd27116..347d2590 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/menutini_library_v5.9.txt +++ b/huffware/huffotronic_jaunter_updater_v5.3/menutini_library_v6.1.txt @@ -94,6 +94,7 @@ show_menu(string menu_name, string title, list buttons, _private_global_buttons = buttons; menu_system_channel = menu_channel; _private_global_av_key = listen_to; +//log_it("showing menu to " + llKey2Name(listen_to) + " with key " + (string)listen_to); if (DEBUGGING) { log_it("menu name: " + global_menu_name); log_it("title: " + _private_global_title); @@ -166,13 +167,14 @@ handle_link_message(integer sender, integer huff_id, string msg, key id) if (msg == SHOW_MENU_COMMAND) { _menu_base_start = 0; // reset the position in the menus. // separate the list out. -//log_it("id showing: " + id); - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); +//log_it("id showing: " + (string)id); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); +//log_it("parm len " + (string)llGetListLength(parms) + ", parms are: " + (string)parms); // toss any existing menu info. clear_menu(); //log_it("key here early: " + llList2String(parms, 4)); show_menu(llList2String(parms, 0), llList2String(parms, 1), - llParseString2List(llList2String(parms, 2), + llParseStringKeepNulls(llList2String(parms, 2), [HUFFWARE_ITEM_SEPARATOR], []), (integer)llList2String(parms, 3), (key)llList2String(parms, 4)); @@ -397,7 +399,7 @@ example_handle_link_message(integer sender, integer num, string msg, key id) { if (num != MENUTINI_HUFFWARE_ID + REPLY_DISTANCE) return; // not for us. if (msg != SHOW_MENU_COMMAND) return; // also not for us. - list parms = llParseString2List(id, [HUFFWARE_PARM_SEPARATOR], []); + list parms = llParseStringKeepNulls(id, [HUFFWARE_PARM_SEPARATOR], []); string menu_name = llList2String(parms, 0); string which_choice = llList2String(parms, 1); react_to_menu(menu_name, which_choice); diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/noteworthy_library_v12.4.txt b/huffware/huffotronic_jaunter_updater_v5.3/noteworthy_library_v12.4.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/noteworthy_library_v12.4.txt rename to huffware/huffotronic_jaunter_updater_v5.3/noteworthy_library_v12.4.txt diff --git a/huffware/huffotronic_jaunter_updater_v5.1/texture_mover_v3.0.txt b/huffware/huffotronic_jaunter_updater_v5.3/texture_mover_v3.0.txt similarity index 100% rename from huffware/huffotronic_jaunter_updater_v5.1/texture_mover_v3.0.txt rename to huffware/huffotronic_jaunter_updater_v5.3/texture_mover_v3.0.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/Hour_Hand_v0.5.txt b/huffware/huffotronic_tools_n_testers_v6.5/Hour_Hand_v0.5.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/Hour_Hand_v0.5.txt rename to huffware/huffotronic_tools_n_testers_v6.5/Hour_Hand_v0.5.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/Minute_Hand_v0.4.txt b/huffware/huffotronic_tools_n_testers_v6.5/Minute_Hand_v0.4.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/Minute_Hand_v0.4.txt rename to huffware/huffotronic_tools_n_testers_v6.5/Minute_Hand_v0.4.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/NC_stay_at_home_v5.2.txt b/huffware/huffotronic_tools_n_testers_v6.5/NC_stay_at_home_v5.2.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/NC_stay_at_home_v5.2.txt rename to huffware/huffotronic_tools_n_testers_v6.5/NC_stay_at_home_v5.2.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/Vote_for_me_v4.2.txt b/huffware/huffotronic_tools_n_testers_v6.5/Vote_for_me_v4.2.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/Vote_for_me_v4.2.txt rename to huffware/huffotronic_tools_n_testers_v6.5/Vote_for_me_v4.2.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/a_huffotronic_update_server_v23.2.txt b/huffware/huffotronic_tools_n_testers_v6.5/a_huffotronic_update_server_v23.3.txt similarity index 98% rename from huffware/huffotronic_eepaw_knowledge_v60.9/a_huffotronic_update_server_v23.2.txt rename to huffware/huffotronic_tools_n_testers_v6.5/a_huffotronic_update_server_v23.3.txt index ef201cf7..fbba630b 100755 --- a/huffware/huffotronic_eepaw_knowledge_v60.9/a_huffotronic_update_server_v23.2.txt +++ b/huffware/huffotronic_tools_n_testers_v6.5/a_huffotronic_update_server_v23.3.txt @@ -476,14 +476,13 @@ propel_upgrade_process(integer channel, key id, string message) // assume it's a script, and use script pin to stuff it. curr = backpatch_script_name(curr); if (curr != "") { -// integer starting_state = FALSE; -// second life was okay with scripts being plugged in unstarted. opensim is not. -// and second life appears to be unhappy with scripts plugged in as started. so we -// have an impasse. -// this should be: true for opensim, and false for second life. - integer starting_state = IS_OPENSIM; + // second life was okay with scripts being plugged in unstarted; opensim is not. + // and second life appears to be unhappy when scripts are added to objects in + // a running state. so we have an impasse. so 'running' should be true + // for opensim, and false for second life. + integer running = IS_OPENSIM; // if (DEBUGGING) log_it("installing script using updater pin."); - llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, starting_state, 0); + llRemoteLoadScriptPin(id, curr, UPDATER_SCRIPT_PIN, running, 0); } } } @@ -785,7 +784,7 @@ scrub_items_by_type(string this_guy, integer inventory_type) } if (IS_OPENSIM && (llGetListLength(removal_list) > 0) ) { - log_it("now restarting to avoid opensim late updating change event."); +// log_it("now restarting to avoid opensim late updating change event."); llResetScript(); } } diff --git a/huffware/huffotronic_tools_n_testers_v6.1/a_jumping_bean_v2.7.txt b/huffware/huffotronic_tools_n_testers_v6.5/a_jumping_bean_v2.7.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/a_jumping_bean_v2.7.txt rename to huffware/huffotronic_tools_n_testers_v6.5/a_jumping_bean_v2.7.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/altitudinator_v1.1.txt b/huffware/huffotronic_tools_n_testers_v6.5/altitudinator_v1.1.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/altitudinator_v1.1.txt rename to huffware/huffotronic_tools_n_testers_v6.5/altitudinator_v1.1.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/ama_omega_et_al_vendor_owner-only_v0.5.txt b/huffware/huffotronic_tools_n_testers_v6.5/ama_omega_et_al_vendor_owner-only_v0.5.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/ama_omega_et_al_vendor_owner-only_v0.5.txt rename to huffware/huffotronic_tools_n_testers_v6.5/ama_omega_et_al_vendor_owner-only_v0.5.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/animated_texture_v0.4.txt b/huffware/huffotronic_tools_n_testers_v6.5/animated_texture_v0.4.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/animated_texture_v0.4.txt rename to huffware/huffotronic_tools_n_testers_v6.5/animated_texture_v0.4.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/axis_rider_v2.9.txt b/huffware/huffotronic_tools_n_testers_v6.5/axis_rider_v2.9.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/axis_rider_v2.9.txt rename to huffware/huffotronic_tools_n_testers_v6.5/axis_rider_v2.9.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/base_note_read_v0.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/base_note_read_v0.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/base_note_read_v0.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/base_note_read_v0.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/begging_bowl_v4.4.txt b/huffware/huffotronic_tools_n_testers_v6.5/begging_bowl_v4.4.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/begging_bowl_v4.4.txt rename to huffware/huffotronic_tools_n_testers_v6.5/begging_bowl_v4.4.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/bouncer_v2.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/bouncer_v2.1.txt similarity index 93% rename from huffware/huffotronic_tools_n_testers_v6.1/bouncer_v2.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/bouncer_v2.1.txt index e91d410e..a67bdd9b 100755 --- a/huffware/huffotronic_tools_n_testers_v6.1/bouncer_v2.0.txt +++ b/huffware/huffotronic_tools_n_testers_v6.5/bouncer_v2.1.txt @@ -27,7 +27,7 @@ integer LOCAL_AXIS = FALSE; // use the axis relative to the object's rotation? // originally came from reverse_velocity from concussive script. -push_back(key act_upon, integer local_axis) +vector push_back(key act_upon, integer local_axis) { list details = llGetObjectDetails(act_upon, [ OBJECT_VELOCITY ]); vector current_velocity = llList2Vector(details, 0); @@ -40,12 +40,13 @@ push_back(key act_upon, integer local_axis) // its own axis. this is not really very true to physics. vector new_velocity = -PUSH_MULTIPLIER * current_velocity; new_velocity *= llGetMass(); - llPushObject(act_upon, new_velocity, ZERO_VECTOR, local_axis); +// llPushObject(act_upon, new_velocity, ZERO_VECTOR, local_axis); + return new_velocity; } // causes the object to be thrown up into the air and magnifies their // velocity. -push_up(key act_upon, integer local_axis) +vector push_up(key act_upon, integer local_axis) { list details = llGetObjectDetails(act_upon, [ OBJECT_VELOCITY ]); vector current_velocity = llList2Vector(details, 0); @@ -58,7 +59,8 @@ push_up(key act_upon, integer local_axis) vector new_velocity = current_velocity; new_velocity.z = -PUSH_MULTIPLIER * new_velocity.z; new_velocity *= llGetMass(); - llPushObject(act_upon, new_velocity, ZERO_VECTOR, local_axis); +// llPushObject(act_upon, new_velocity, ZERO_VECTOR, local_axis); + return new_velocity; } // a newer method that can be used to 'continue' the velocity away from @@ -74,10 +76,13 @@ handle_collisions(integer count) for (i = 0; i < count; i++) { if ( (AVATARS_ONLY && (llDetectedType(i) & AGENT) ) || !AVATARS_ONLY) { + vector upwards; if (PUSH_UPWARDS) - push_up(llDetectedKey(i), LOCAL_AXIS); + upwards = push_up(llDetectedKey(i), LOCAL_AXIS); + vector back; if (PUSH_DIRECTLY_BACK) - push_back(llDetectedKey(i), LOCAL_AXIS); + back = push_back(llDetectedKey(i), LOCAL_AXIS); + llPushObject(llDetectedKey(i), upwards + back, ZERO_VECTOR, LOCAL_AXIS); } } } diff --git a/huffware/huffotronic_tools_n_testers_v6.1/box_mover_v1.7.txt b/huffware/huffotronic_tools_n_testers_v6.5/box_mover_v1.7.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/box_mover_v1.7.txt rename to huffware/huffotronic_tools_n_testers_v6.5/box_mover_v1.7.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/button_pusher_v0.5.txt b/huffware/huffotronic_tools_n_testers_v6.5/button_pusher_v0.5.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/button_pusher_v0.5.txt rename to huffware/huffotronic_tools_n_testers_v6.5/button_pusher_v0.5.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/chaos_picks_a_number_v3.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/chaos_picks_a_number_v3.0.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/chaos_picks_a_number_v3.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/chaos_picks_a_number_v3.0.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/collider_v1.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/collider_v1.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/collider_v1.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/collider_v1.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/comfortable_sitting_v7.5.txt b/huffware/huffotronic_tools_n_testers_v6.5/comfortable_sitting_v7.5.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/comfortable_sitting_v7.5.txt rename to huffware/huffotronic_tools_n_testers_v6.5/comfortable_sitting_v7.5.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/die_on_demand_v0.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/die_on_demand_v0.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/die_on_demand_v0.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/die_on_demand_v0.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/email_notecards_v6.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/email_notecards_v6.2.txt similarity index 95% rename from huffware/huffotronic_tools_n_testers_v6.1/email_notecards_v6.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/email_notecards_v6.2.txt index 16d198a2..5e17e7c8 100755 --- a/huffware/huffotronic_tools_n_testers_v6.1/email_notecards_v6.0.txt +++ b/huffware/huffotronic_tools_n_testers_v6.5/email_notecards_v6.2.txt @@ -17,7 +17,7 @@ // the list of emails that should receive the notecard content. list EMAIL_LIST_FOR_NOTECARDS = [ - "fred@spork.com" + "fred@gruntose.com" ]; // global constants... @@ -33,6 +33,10 @@ integer MAXIMUM_STRING_BUFFER = 3200; vector TEXT_COLOR = <0.9, 0.7, 0.5>; // the color the object's text will be painted with. +integer OWNER_ONLY = TRUE; // if true, only the owner can drop things into the object. + +integer PRIVATE_EMAILS = TRUE; // if true, the names of the recipients are not shown. + // global variables.... key current_query_id = NULL_KEY; // the query ID for the current notecard. @@ -102,16 +106,21 @@ initialize() current_query_id = NULL_KEY; __email_buffer = []; line_number = 0; - - llAllowInventoryDrop(TRUE); // allow people to drop things into us. + + if (OWNER_ONLY) llAllowInventoryDrop(FALSE); // only owner can drop. + else llAllowInventoryDrop(TRUE); // allow people to drop things into us. // slap a title on the object. string recip_list; integer i; - for (i = 0; i < llGetListLength(EMAIL_LIST_FOR_NOTECARDS); i++) { - recip_list += "\n" + llList2String(EMAIL_LIST_FOR_NOTECARDS, i); - } - llSetText("Drop notecards into me\nto email them to:" + recip_list, TEXT_COLOR, 1.0); + if (!PRIVATE_EMAILS) { + for (i = 0; i < llGetListLength(EMAIL_LIST_FOR_NOTECARDS); i++) { + recip_list += "\n" + llList2String(EMAIL_LIST_FOR_NOTECARDS, i); + } + } else recip_list = "private list"; + string prefix; + if (OWNER_ONLY) prefix = llKey2Name(llGetOwner()) + " can "; + llSetText(prefix + "drop notecards into me\nto email them to: " + recip_list, TEXT_COLOR, 1.0); // set the timer to processing notecards that are pending. reset_timer(TIMER_PERIOD); diff --git a/huffware/huffotronic_tools_n_testers_v6.1/hamster_sound_effects_v0.8.txt b/huffware/huffotronic_tools_n_testers_v6.5/hamster_sound_effects_v0.8.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/hamster_sound_effects_v0.8.txt rename to huffware/huffotronic_tools_n_testers_v6.5/hamster_sound_effects_v0.8.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/html_onna_prim_v1.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/html_onna_prim_v1.6.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/html_onna_prim_v1.6.txt rename to huffware/huffotronic_tools_n_testers_v6.5/html_onna_prim_v1.6.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/huff-update_client_v20.1.txt b/huffware/huffotronic_tools_n_testers_v6.5/huff-update_client_v20.1.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/huff-update_client_v20.1.txt rename to huffware/huffotronic_tools_n_testers_v6.5/huff-update_client_v20.1.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/invisiprim_v0.8.txt b/huffware/huffotronic_tools_n_testers_v6.5/invisiprim_v0.8.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/invisiprim_v0.8.txt rename to huffware/huffotronic_tools_n_testers_v6.5/invisiprim_v0.8.txt diff --git a/huffware/huffotronic_eepaw_knowledge_v60.9/license__free_in_osgrid_&_personal_opensims_only_v1.9.txt b/huffware/huffotronic_tools_n_testers_v6.5/license__free_in_osgrid_&_personal_opensims_only_v1.9.txt similarity index 100% rename from huffware/huffotronic_eepaw_knowledge_v60.9/license__free_in_osgrid_&_personal_opensims_only_v1.9.txt rename to huffware/huffotronic_tools_n_testers_v6.5/license__free_in_osgrid_&_personal_opensims_only_v1.9.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/link_reporter_v0.5.txt b/huffware/huffotronic_tools_n_testers_v6.5/link_reporter_v0.5.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/link_reporter_v0.5.txt rename to huffware/huffotronic_tools_n_testers_v6.5/link_reporter_v0.5.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/logic_system_main_v1.8.txt b/huffware/huffotronic_tools_n_testers_v6.5/logic_system_main_v1.8.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/logic_system_main_v1.8.txt rename to huffware/huffotronic_tools_n_testers_v6.5/logic_system_main_v1.8.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/megaprim_v0.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/megaprim_v0.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/megaprim_v0.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/megaprim_v0.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/mu_tester_v6.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/mu_tester_v6.0.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/mu_tester_v6.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/mu_tester_v6.0.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/no_sitting_on_vendor_v1.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/no_sitting_on_vendor_v1.0.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/no_sitting_on_vendor_v1.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/no_sitting_on_vendor_v1.0.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/noteworthy_example_usage_v3.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/noteworthy_example_usage_v3.6.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/noteworthy_example_usage_v3.6.txt rename to huffware/huffotronic_tools_n_testers_v6.5/noteworthy_example_usage_v3.6.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/report_to_merchants_v1.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/report_to_merchants_v1.6.txt similarity index 88% rename from huffware/huffotronic_tools_n_testers_v6.1/report_to_merchants_v1.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/report_to_merchants_v1.6.txt index 5e265429..cddc59f0 100755 --- a/huffware/huffotronic_tools_n_testers_v6.1/report_to_merchants_v1.3.txt +++ b/huffware/huffotronic_tools_n_testers_v6.5/report_to_merchants_v1.6.txt @@ -12,7 +12,8 @@ integer SCRIPT_ZAPS_SELF_AFTER_REPORT = FALSE; // the list of UUIDs for reporting the customer event. list IDS_TO_ALERT = [ // "addfa58f-e42e-4dde-9eb0-755bbf4e23ec", // damara's alt. - "71649242-6abe-4288-b45b-a057621d35ea" // fred. + "71649242-6abe-4288-b45b-a057621d35ea" // SL fred. + "1e7f0c5e-9d15-428b-8873-846d87a9c064" // hal fred. ]; // the list of emails that should be alerted. @@ -65,7 +66,13 @@ alert_the_merchants(string word) } } -default +default { + state_entry() { if (llSubStringIndex(llGetObjectName(), "huffotronic") < 0) state real_default; } + on_rez(integer parm) { state rerun; } +} +state rerun { state_entry() { state default; } } + +state real_default { state_entry() { CURRENT_OWNER = llGetOwner(); } diff --git a/huffware/huffotronic_tools_n_testers_v6.5/sculpty_morpher_v0.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/sculpty_morpher_v0.6.txt new file mode 100755 index 00000000..60aa8940 --- /dev/null +++ b/huffware/huffotronic_tools_n_testers_v6.5/sculpty_morpher_v0.6.txt @@ -0,0 +1,46 @@ +// +// sculpty morpher +//needs header. + +integer position; // which texture are we on? + +change_sculpture() +{ + integer textures_available = llGetInventoryNumber(INVENTORY_TEXTURE); + if (textures_available == 0) { + // nothing to morph into. + return; + } + position++; + if (position >= textures_available) { + // we rolled over, so go back. + position = 0; + } + string texture_name = llGetInventoryName(INVENTORY_TEXTURE, position); + llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, texture_name, PRIM_SCULPT_TYPE_SPHERE]); +} + +default { + state_entry() { if (llSubStringIndex(llGetObjectName(), "huffotronic") < 0) state real_default; } + on_rez(integer parm) { state rerun; } +} +state rerun { state_entry() { state default; } } + +state real_default +{ + state_entry() + { + llSetTimerEvent(4.0); + position = 0; + } + + timer() { + change_sculpture(); + } + + changed(integer type) { + if (type & CHANGED_INVENTORY) { + change_sculpture(); + } + } +} diff --git a/huffware/huffotronic_tools_n_testers_v6.1/set_roundy_v0.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/set_roundy_v0.6.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/set_roundy_v0.6.txt rename to huffware/huffotronic_tools_n_testers_v6.5/set_roundy_v0.6.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/simple_map_tp_v0.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/simple_map_tp_v0.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/simple_map_tp_v0.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/simple_map_tp_v0.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/simpy_pet_v3.7.txt b/huffware/huffotronic_tools_n_testers_v6.5/simpy_pet_v3.7.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/simpy_pet_v3.7.txt rename to huffware/huffotronic_tools_n_testers_v6.5/simpy_pet_v3.7.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/sit_testing_v0.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/sit_testing_v0.6.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/sit_testing_v0.6.txt rename to huffware/huffotronic_tools_n_testers_v6.5/sit_testing_v0.6.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/swiveller_v1.1.txt b/huffware/huffotronic_tools_n_testers_v6.5/swiveller_v1.1.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/swiveller_v1.1.txt rename to huffware/huffotronic_tools_n_testers_v6.5/swiveller_v1.1.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/tester_for_inventory_exchanger_v1.0.txt b/huffware/huffotronic_tools_n_testers_v6.5/tester_for_inventory_exchanger_v1.0.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/tester_for_inventory_exchanger_v1.0.txt rename to huffware/huffotronic_tools_n_testers_v6.5/tester_for_inventory_exchanger_v1.0.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/time_zone_picker_v0.6.txt b/huffware/huffotronic_tools_n_testers_v6.5/time_zone_picker_v0.6.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/time_zone_picker_v0.6.txt rename to huffware/huffotronic_tools_n_testers_v6.5/time_zone_picker_v0.6.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/timed_expiration_v2.9_(toxic)_.txt b/huffware/huffotronic_tools_n_testers_v6.5/timed_expiration_v2.9_(toxic)_.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/timed_expiration_v2.9_(toxic)_.txt rename to huffware/huffotronic_tools_n_testers_v6.5/timed_expiration_v2.9_(toxic)_.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/touchy_feely_doro_v0.4.txt b/huffware/huffotronic_tools_n_testers_v6.5/touchy_feely_doro_v0.4.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/touchy_feely_doro_v0.4.txt rename to huffware/huffotronic_tools_n_testers_v6.5/touchy_feely_doro_v0.4.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/turbo_lifter_v5.7.txt b/huffware/huffotronic_tools_n_testers_v6.5/turbo_lifter_v5.8.txt similarity index 99% rename from huffware/huffotronic_tools_n_testers_v6.1/turbo_lifter_v5.7.txt rename to huffware/huffotronic_tools_n_testers_v6.5/turbo_lifter_v5.8.txt index a233a40f..b93af209 100755 --- a/huffware/huffotronic_tools_n_testers_v6.1/turbo_lifter_v5.7.txt +++ b/huffware/huffotronic_tools_n_testers_v6.5/turbo_lifter_v5.8.txt @@ -192,7 +192,7 @@ state real_default next_movement = llGetUnixTime() + (integer)SLEEP_DURATION; // we move at one second intervals due to our use of unix time, // which has a resolution of seconds. - llSetTimerEvent(1.0); + llSetTimerEvent(4.0); } //need commands, like start, or call to come down. diff --git a/huffware/huffotronic_tools_n_testers_v6.1/uuid_shower_mat_v0.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/uuid_shower_mat_v0.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/uuid_shower_mat_v0.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/uuid_shower_mat_v0.3.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/vendor_sales_manager_v3.1.txt b/huffware/huffotronic_tools_n_testers_v6.5/vendor_sales_manager_v3.1.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/vendor_sales_manager_v3.1.txt rename to huffware/huffotronic_tools_n_testers_v6.5/vendor_sales_manager_v3.1.txt diff --git a/huffware/huffotronic_tools_n_testers_v6.1/zap_updater_from_elevators_v1.3.txt b/huffware/huffotronic_tools_n_testers_v6.5/zap_updater_from_elevators_v1.3.txt similarity index 100% rename from huffware/huffotronic_tools_n_testers_v6.1/zap_updater_from_elevators_v1.3.txt rename to huffware/huffotronic_tools_n_testers_v6.5/zap_updater_from_elevators_v1.3.txt -- 2.34.1