Myriad_Lite_Food_Potion-Preview6.lsl
// Myriad_Lite_Food_Potion-Preview6.lsl
// Copyright (c) 2012 Allen Kerensky (OSG/SL) All Rights Reserved.
// Copyright (c) 2012 Yoshiko Fazuku (Avination/OSG/SL) All Rights Reserved.
// This work is dual-licensed under
// Creative Commons Attribution (CC BY) 3.0 Unported
// http://creativecommons.org/licenses/by/3.0/
// - or -
// Modified BSD License (3-clause)
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * Neither the name of Myriad Lite nor the names of its contributors may be
// used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai
// Myriad RPG System licensed under:
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales
// http://creativecommons.org/licenses/by/2.0/uk/
string VERSION = "0.0.1"; // version number
string VERDATE = "20120830"; // version date
integer CHANMYRIAD = -999; // channel for Myriad RP events
string DIV = "|"; // Myriad message field divider
integer HEALAMOUNT = 5; // heal how many critical/wound boxes?
list choices = ["Cancel", "Eat Now!"];
string msg = "Please make a choice. You can only eat this food once";
key ToucherID;
integer channel_dialog;
integer listen_id;
default{
state_entry() {
channel_dialog = ( -1 * (integer)("0x"+llGetSubString((string)llGetKey(),-5,-1)) );
llRequestPermissions( llGetOwner(), PERMISSION_ATTACH );
}
run_time_permissions( integer vBitPermissions )
{
if (PERMISSION_ATTACH & vBitPermissions)
{
llAttachToAvatar(ATTACH_RHAND);
}
else
{
llOwnerSay( "You must attach item to use" );
}
}
on_rez(integer rez)
{
if(!llGetAttached())
{ //reset the script if it's not attached.
llResetScript();
}
ToucherID = llGetOwner();
llDialog(ToucherID, msg, choices, channel_dialog);
listen_id = llListen( channel_dialog, "", ToucherID, "");
llSetTimerEvent(60); //HERE WE SET A TIME LIMIT
}
touch_start(integer total_number) {
ToucherID = llDetectedKey(0);
llDialog(ToucherID, msg, choices, channel_dialog);
listen_id = llListen( channel_dialog, "", ToucherID, "");
llSetTimerEvent(60); //HERE WE SET A TIME LIMIT
}
listen(integer channel, string name, key id, string choice) {
key who = llGetOwner();
integer chanplayer = (integer)("0x"+llGetSubString((string)who,0,6));
if (choice == "Eat Now!") {
llListenRemove(listen_id);
llRegionSay(CHANMYRIAD,llKey2Name(who)+" has eaten an apple!");
llWhisper(chanplayer,"HEALPARTIAL"+DIV+(string)HEALAMOUNT); // tell player HUD to heal some damage
// change aperance or deleate
}else{
//do something nothing.
llListenRemove(listen_id);
}
}
timer() { //TIME’S UP!
llListenRemove(listen_id);
llSetTimerEvent(0.0); //Stop the timer from being called repeatedly
}
}