User:Allen Kerensky/Myriad Lite Preview2/Myriad Lite Target v0.0.4 20110523
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Myriad Lite Target v0.0.4 20110523
<lsl> //============================================================================ // Myriad Target v0.0.4 20110523 // Copyright (c) 2011 By Allen Kerensky (OSG/SL) // The Myriad RPG System was designed, written, and illustrated by Ashok Desai // Myriad is published under a: // Creative Commons License (Attribution 2.0 UK: England and Wales) // Myriad Lite Target is published under a: // Creative Commons License Attribution-NonCommercial-ShareAlike 3.0 Unported //============================================================================
integer CHANOBJECT; integer HANDOBJECT; integer MINSTAT = 1; integer MAXSTAT = 10; integer MINSKILL = 1; integer MAXSKILL = 5; integer MINDAMAGE = 1; integer MAXDAMAGE = 5;
ERROR(string errmsg) {
llSay(DEBUG_CHANNEL,"ERROR: "+errmsg);
}
default {
state_entry() {
llSetPrimitiveParams([PRIM_PHANTOM, FALSE]);
CHANOBJECT = (integer)("0x"+llGetSubString((string)llGetKey(),0,6));
HANDOBJECT = llListen(CHANOBJECT,"",NULL_KEY,"");
}
on_rez(integer rez_param) {
llResetScript();
}
listen(integer channel,string speakername,key speakerid,string message) {
list fields = llParseString2List(message,["|"],[]);
string command = llList2String(fields,0);
if ( channel == CHANOBJECT ) { // handle player dynamic commands
if ( command == "HITCHECK" ) {
integer attackstat = llList2Integer(fields,1);
integer attackskill = llList2Integer(fields,2);
integer attackdice = llList2Integer(fields,3);
key owner = llList2Key(fields,4);
string item = llList2String(fields,5);
if ( attackstat < MINSTAT || attackstat > MAXSTAT ) {
ERROR("Attack stat value out of range: "+(string)MINSTAT+"-"+(string)MAXSTAT);
return;
}
if ( attackskill < MINSKILL || attackstat > MAXSKILL ) {
ERROR("Attack skill value out of range: "+(string)MINSKILL+"-"+(string)MAXSKILL);
return;
}
if ( attackdice < MINDAMAGE || attackdice > MAXDAMAGE ) {
ERROR("Attack dice value out of range: "+(string)MINDAMAGE+"-"+(string)MAXDAMAGE);
}
llSay(PUBLIC_CHANNEL,"/me hit by "+llKey2Name(owner)+"'s "+item+" for "+(string)attackdice+" attack dice!");
return;
}
}
}
} </lsl>