Advertisement
Tiky_Esporto

Typer Script

Dec 11th, 2018
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /****************************************************************************
  2. **===========================================================================
  3. **    Typer Script by bayjoo
  4. **    25fae92c-d1a8-48fe-bacd-36c5539bb435
  5. **    Mon Nov 26 14:10:12 2018
  6. **===========================================================================
  7. **                              LSLEdit++ v0.1
  8. **===========================================================================
  9. ****************************************************************************/
  10. integer g_iSoundNumb;
  11. integer g_iAnimNumb;
  12. string g_sSoundPlaying;
  13. string g_sAnimPlaying;
  14. integer g_bHasPerm;
  15. integer g_bTyping;
  16. integer g_iAtt;
  17. key g_kOwner = NULL_KEY;
  18. init(){
  19.     g_kOwner = llGetOwner();
  20.     g_iAtt = llGetAttached();
  21.     float fTime;
  22.     list lParams;
  23.     if(g_iAtt){
  24.         llRequestPermissions(g_kOwner, PERMISSION_TRIGGER_ANIMATION);
  25.         fTime = 0.5;
  26.         g_bHasPerm = FALSE;
  27.  
  28.         // Comment/delete the next line if you use in anything else than newly build prim
  29.         lParams = [PRIM_SIZE, ZERO_VECTOR, PRIM_COLOR, ALL_SIDES, ZERO_VECTOR, 0];
  30.     }
  31.         // Comment/delete the next line if you use in anything else than newly build prim
  32.          else lParams = [PRIM_SIZE, <0.5, 0.5, 0.5>, PRIM_COLOR, ALL_SIDES, ZERO_VECTOR, 1];
  33.  
  34.     if(lParams) llSetLinkPrimitiveParamsFast(LINK_SET, lParams);
  35.     llSetTimerEvent(fTime);
  36.     g_bTyping = FALSE;
  37.     g_iAnimNumb = llGetInventoryNumber(INVENTORY_ANIMATION);
  38.     g_iSoundNumb = llGetInventoryNumber(INVENTORY_SOUND);
  39. }
  40. default{
  41.     state_entry(){
  42.         llSetObjectName("Tiky's Typer");
  43.         init();
  44.     }
  45.     on_rez(integer in_iSp){ init(); }
  46.     attach(key in_kId){
  47.         if(in_kId == NULL_KEY){
  48.             if(g_sAnimPlaying) if(g_bHasPerm) llStopAnimation(((g_sAnimPlaying="")+g_sAnimPlaying));
  49.             if(g_sSoundPlaying){ llStopSound(); g_sSoundPlaying = ""; }
  50.             g_bHasPerm = FALSE;
  51.         }
  52.     }
  53.     run_time_permissions(integer in_iPerm){ g_bHasPerm = !!(in_iPerm&PERMISSION_TRIGGER_ANIMATION);}
  54.     timer(){
  55.         integer bTyping = !!(llGetAgentInfo(g_kOwner)&AGENT_TYPING);
  56.         if(bTyping != g_bTyping){
  57.             if(g_iSoundNumb){
  58.                 if(bTyping){
  59.                     g_sSoundPlaying = llGetInventoryName(INVENTORY_SOUND, llFloor(llFrand(g_iSoundNumb)));
  60.                     llLoopSound(g_sSoundPlaying, 1);
  61.                 } else{
  62.                     llStopSound();
  63.                     g_sSoundPlaying = "";
  64.                 }
  65.             }
  66.             if(g_bHasPerm && g_iAnimNumb){
  67.                 if(bTyping){
  68.                     g_sAnimPlaying = llGetInventoryName(INVENTORY_ANIMATION, llFloor(llFrand(g_iAnimNumb)));
  69.                     llStartAnimation(g_sAnimPlaying);                
  70.                 } else llStopAnimation(((g_sAnimPlaying="")+g_sAnimPlaying));
  71.             }
  72.             g_bTyping = bTyping;
  73.         }
  74.     }
  75.     changed(integer in_iFlag){
  76.         if(in_iFlag&CHANGED_INVENTORY){
  77.             g_iAnimNumb = llGetInventoryNumber(INVENTORY_ANIMATION);
  78.             g_iSoundNumb = llGetInventoryNumber(INVENTORY_SOUND);
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement