/////////////////////////////////////////////////////////// // // Timer Controller v1.0 by Fumi.Iseki // // // Channel integer timer_channel = 856; // string car_type = "Free"; key driver = NULL_KEY; key engine = NULL_KEY; integer debug_mode = FALSE; ///////////////////////////////////////////////////////////////////////// // Note Card string notecard_name = "car.conf"; key notecard_key = NULL_KEY; integer notecard_line = 0; // ノートカードの読み込み read_conf() { llResetTime(); notecard_line = 0; if (llGetInventoryType(notecard_name)==INVENTORY_NOTECARD) { notecard_key = llGetNotecardLine(notecard_name, 0); } } // ノートカードからの読み込みデータの解釈 parse_conf_file(string str, integer say) { list items = llParseString2List(str,["=", ",", " ", "\n"], []); string name = llList2String(items,0); string value = llList2String(items,1); if (name == "debug") { integer flg = (integer)value; if (flg>0) { debug_mode = TRUE; //llSay(0, "Debug Mode ON"); } } if (name == "car_type") { car_type = value; if (say) llSay(0, "CAR Type is "+car_type); } return; } ///////////////////////////////////////////////////////////////////////// // default State default { // ノートカードが一行読まれる度に発生するイベント dataserver(key requested_key, string data) { if (requested_key == notecard_key ){ notecard_key = NULL_KEY; if (data != EOF){ parse_conf_file(data, debug_mode); notecard_line++; notecard_key = llGetNotecardLine(notecard_name, notecard_line); } } } state_entry() { read_conf(); } on_rez(integer param) { llResetScript(); } changed(integer change) { if (change & CHANGED_LINK) { key agent = llAvatarOnSitTarget(); if (agent!=NULL_KEY) { driver = agent; engine = llGetLinkKey(1); llSay(timer_channel, "SETUP " + (string)driver + " " + (string)engine + " " + car_type); if (debug_mode) llSay(0, "SETUP " + (string)driver + " " + (string)engine + " " + car_type); } } // else { llResetScript(); } } }