Advertisement
salahzar

Memory Script

Nov 6th, 2013
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. string retro;
  3. list cards; integer max=16;
  4.  
  5.  
  6. show(integer link,string card)
  7. {
  8.    
  9.     list l=[ PRIM_TEXTURE,ALL_SIDES,card, <1,1,0>,<0,0,0>,PI/2];
  10. //llOwnerSay((string)link+" "+llList2CSV(l));
  11.    llSetLinkPrimitiveParamsFast(link,l);
  12.  
  13. }
  14. showCard(integer link,string texture)
  15. {
  16.       llSetLinkPrimitiveParamsFast(link,[ PRIM_TEXTURE,ALL_SIDES,texture, <1,1,0>,<0,0,0>,PI/2]);
  17. }
  18.  
  19.  
  20. mischiacarte()
  21. {
  22.     cards=[];
  23.     integer i; for(i=1;i<=16;i++) cards+=llGetInventoryName(INVENTORY_TEXTURE,i);
  24.     list cards2=[];
  25.     integer l;
  26.     for(l=0;l<16;l++)
  27.     {
  28.         integer residual=llGetListLength(cards);
  29.         integer random=(integer)llFrand(residual);
  30.         cards2+=llList2String(cards,random);
  31.         cards=llDeleteSubList(cards,random,random);
  32.     }
  33.     cards=cards2; cards2=[];
  34. }
  35.  
  36. integer status=0; string  savevalue; integer savelink;
  37. integer starttime;
  38. string avatar;
  39.  
  40. integer connected(string a,string b)
  41. {
  42.     integer la=llStringLength(a);
  43.     integer lb=llStringLength(b);
  44.     if(la!=lb) return 0;
  45.     string pr1=llGetSubString(a,0,la-2);
  46.     string pr2=llGetSubString(b,0,la-2);
  47.     if(pr1==pr2) return 1;
  48.     return 0;
  49. }
  50.  
  51. default
  52. {
  53.     state_entry()
  54.     {
  55.         retro=llGetInventoryName(INVENTORY_TEXTURE,0);
  56.         mischiacarte(); max=16;
  57.         integer i;
  58.         integer j;
  59.        
  60.         for(i=0;i<16;i++)
  61.                 showCard(i+1,retro);
  62.                      
  63.     }
  64.     touch_start(integer count)
  65.     {
  66.         avatar=llDetectedName(0);
  67.         llSay(0,avatar +" inizia il gioco");
  68.        
  69.         state gioca;
  70.     }
  71. }
  72.  
  73.  
  74. state gioca
  75. {
  76.     state_entry()
  77.     {
  78.         llSetTimerEvent(60);
  79.         starttime=llGetUnixTime();
  80.            
  81.         status=0;
  82.     }
  83.     timer()
  84.     {
  85.         llSay(0,avatar+" non sta giocando da più di 60 secondi... Mi libero per un altro giocatore");
  86.         llResetScript();
  87.     }
  88.     touch_start(integer count)
  89.     {
  90.         llSetTimerEvent(60);
  91.         integer link=llDetectedLinkNumber(0);
  92.        
  93.       string  value=llList2String(cards,link-1);
  94.   //    llOwnerSay("value: "+value);
  95.       if(value=="") {
  96.           llSay(0,"Carta già scoperta");
  97.           return;
  98.         }
  99.         if(status==0)
  100.         {
  101.           //  llOwnerSay("status 0");
  102.             show(link,value);
  103.             status=1; savevalue=llList2String(cards,link-1); savelink=link;
  104.         }
  105.         else
  106.         {
  107.             //llOwnerSay("status 1");
  108.             show(link,llList2String(cards,link-1));
  109.             llSleep(1);
  110.             status=0;
  111.             string newvalue=llList2String(cards,link-1);
  112.             if(connected(newvalue,savevalue)==1){
  113.                 llSay(0,"Indovinato");
  114.                 max-=2;
  115.                 cards=llListReplaceList(cards,[""],link-1,link-1);
  116.                 cards=llListReplaceList(cards,[""],savelink-1,savelink-1);
  117.                  if(max<=0)
  118.                 {
  119.                     llSay(0,avatar +"ha Finito il quiz in "+(string)(llGetUnixTime()-starttime+" secondi")); llSleep(3); llResetScript(); return; }
  120.             }
  121.             else
  122.             {
  123.                 llOwnerSay("Sbagliato");
  124.                 showCard(savelink,retro); showCard(link,retro);
  125.                 status=0;
  126.             }
  127.         }
  128.     }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement