Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string retro;
- list cards; integer max=16;
- show(integer link,string card)
- {
- list l=[ PRIM_TEXTURE,ALL_SIDES,card, <1,1,0>,<0,0,0>,PI/2];
- //llOwnerSay((string)link+" "+llList2CSV(l));
- llSetLinkPrimitiveParamsFast(link,l);
- }
- showCard(integer link,string texture)
- {
- llSetLinkPrimitiveParamsFast(link,[ PRIM_TEXTURE,ALL_SIDES,texture, <1,1,0>,<0,0,0>,PI/2]);
- }
- mischiacarte()
- {
- cards=[];
- integer i; for(i=1;i<=16;i++) cards+=llGetInventoryName(INVENTORY_TEXTURE,i);
- list cards2=[];
- integer l;
- for(l=0;l<16;l++)
- {
- integer residual=llGetListLength(cards);
- integer random=(integer)llFrand(residual);
- cards2+=llList2String(cards,random);
- cards=llDeleteSubList(cards,random,random);
- }
- cards=cards2; cards2=[];
- }
- integer status=0; string savevalue; integer savelink;
- integer starttime;
- string avatar;
- integer connected(string a,string b)
- {
- integer la=llStringLength(a);
- integer lb=llStringLength(b);
- if(la!=lb) return 0;
- string pr1=llGetSubString(a,0,la-2);
- string pr2=llGetSubString(b,0,la-2);
- if(pr1==pr2) return 1;
- return 0;
- }
- default
- {
- state_entry()
- {
- retro=llGetInventoryName(INVENTORY_TEXTURE,0);
- mischiacarte(); max=16;
- integer i;
- integer j;
- for(i=0;i<16;i++)
- showCard(i+1,retro);
- }
- touch_start(integer count)
- {
- avatar=llDetectedName(0);
- llSay(0,avatar +" inizia il gioco");
- state gioca;
- }
- }
- state gioca
- {
- state_entry()
- {
- llSetTimerEvent(60);
- starttime=llGetUnixTime();
- status=0;
- }
- timer()
- {
- llSay(0,avatar+" non sta giocando da più di 60 secondi... Mi libero per un altro giocatore");
- llResetScript();
- }
- touch_start(integer count)
- {
- llSetTimerEvent(60);
- integer link=llDetectedLinkNumber(0);
- string value=llList2String(cards,link-1);
- // llOwnerSay("value: "+value);
- if(value=="") {
- llSay(0,"Carta già scoperta");
- return;
- }
- if(status==0)
- {
- // llOwnerSay("status 0");
- show(link,value);
- status=1; savevalue=llList2String(cards,link-1); savelink=link;
- }
- else
- {
- //llOwnerSay("status 1");
- show(link,llList2String(cards,link-1));
- llSleep(1);
- status=0;
- string newvalue=llList2String(cards,link-1);
- if(connected(newvalue,savevalue)==1){
- llSay(0,"Indovinato");
- max-=2;
- cards=llListReplaceList(cards,[""],link-1,link-1);
- cards=llListReplaceList(cards,[""],savelink-1,savelink-1);
- if(max<=0)
- {
- llSay(0,avatar +"ha Finito il quiz in "+(string)(llGetUnixTime()-starttime+" secondi")); llSleep(3); llResetScript(); return; }
- }
- else
- {
- llOwnerSay("Sbagliato");
- showCard(savelink,retro); showCard(link,retro);
- status=0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement