script rental box

Répondre
Partager Rechercher
CC mes coeurs,
Une copine m'a donnée une rental box (full perm, transfert et tout le tralala) bref, je souhaite changer le prix et le texte
j'ai bien trouvée le prix en ligne 54, j'ai fais enregistrer mais cela ne fonctionne pas, sur la box "in world" y'a toujours l'ancien prix
j'ai du rater quelque chose, (c'est la 1ère fois que j'ouvre un script)
bisous
Cin
hihi, le voilà

// second life rental script lets you set price, weeks, splits, etc.

// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl
// Author: unknown

// please copy the text below in an notecard and drop the notecard in the prim, together with the script



// ==== NOTECARD TEXT ======

//Rentals Help
//----------------

//please click and enable editmode rental before typing comands!!!
//----------------------------------------------------------

//set price ? | sets price of space to whatever ? is
//set weeks ? | sets weeks to whatever ? is
//set prims ? | sets prims to whatever ? is
//set offset ? | sets info box offset to whatever ? is
//set renter ? | sets name of renter to whatever ? is
//set offset ? | sets info box offset to whatever ? is
//set rentedfor ? | sets how long rented for in days:hours:mins:seconds this info is put where ? is
//set split ? | set who you split mony with ? must be users key who you are sharing with
//split remove ? | removes name from split list requires name (case sensative)
// (only after rented)

//features of 1.4

// renters can now pay for extra weeks while in use
// displayed exact time left to renters and owner

// New fetures of 1.5
// now im's user on expire
// able to split money with other people







// ==== THE SCRIPT ====



list splitwith;
list splitname;
string ownername;
integer not_registered = TRUE;
vector original_location;
vector original_scale;
integer objects = 100; // objects
integer price = 400; // price
integer weeks = 1; // weaks
vector offset = <0, 0, 2>;
integer mature = 0;
string rentor;
string rentorkey;
integer rented = FALSE;
string rentperiod;
integer numListen;
integer randchannel;
integer editmode;
integer stopper;
string daterented;
integer rentedweeks;
integer timerevent;

default
{
on_rez(integer change)
{
llInstantMessage(llGetOwner(),"for help click item then select help from menu");
llSetTexture("rentit", ALL_SIDES);
llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
llListen(0,"","","");
randchannel = (integer)llFrand(10000000);
llListen(randchannel,"","","");
editmode = 0;
timerevent = 0;
rented == FALSE;
}
listen(integer c, string n, key id, string m)
{
stopper = 0;
string objectname;
objectname = llGetObjectName();
if (m == "Vacent" && c == randchannel && id == llGetOwner() && rented == TRUE)
{
llSetTexture("rentit", ALL_SIDES);
llSetPos(original_location);
llSetScale(original_scale);
llListenRemove(numListen);
numListen = llListen(0, "", "", "" );
rentperiod = "";
rentor = "";
rentorkey = NULL_KEY;
rented = FALSE;
daterented = "";
rentedweeks = 0;
timerevent = 0;
llSetTimerEvent(0);
llSay(0, objectname + " is vacent");
}
if (m == "Mature" && c == randchannel && id == llGetOwner())
{
mature = 1;
llSay(0,"set to Mature Area");
}
if (m == "Renter info" && c == randchannel && id == llGetOwner())
{
integer weeks2;
weeks2 = timerevent / 7 / 24 / 60 / 60;
integer days;
days = timerevent / 24 / 60 / 60 - (weeks2 * 7);
integer hours;
hours = timerevent / 60 / 60 - (weeks2 * 7 * 24) - (days * 24);
integer mins;
mins = timerevent / 60 - (weeks2 * 7 * 24 * 60) - (days * 24 * 60) - (hours * 60);
integer seconds;
seconds = timerevent - (weeks2 * 7 * 24 * 60 * 60) - (days * 24 * 60 * 60) - (hours * 60 * 60) - (mins * 60);
llInstantMessage(llGetOwner(),"Renter name: " + rentor);
llInstantMessage(llGetOwner(),"Rented Date: " + daterented);
llInstantMessage(llGetOwner(),"Rented Left: " + (string)weeks2 + " weeks | " + (string)days + " days | " + (string)hours + ":" + (string)mins + ";" +(string)seconds);
if (rentedweeks >= 2)
{
llInstantMessage(llGetOwner(),"Rented amount: " + (string)rentedweeks + " weeks");
}
if (rentedweeks == 1)
{
llInstantMessage(llGetOwner(),"Rented amount: " + (string)rentedweeks + " week");
}
if (rentedweeks <= 0)
{
llInstantMessage(llGetOwner(),"Rented amount: N/A");
}
}
if (m == "PG" && c == randchannel && id == llGetOwner())
{
mature = 0;
llSay(0,"set to PG Area");
}
if (m == "Status" && c == randchannel && id == llGetOwner())
{
string mit;
llInstantMessage(llGetOwner(),"Prim's set to " + (string)objects);
llInstantMessage(llGetOwner(),"Week's set to " + (string)weeks);
llInstantMessage(llGetOwner(),"Offset set to " + (string)offset);
if (mature == 1)
{
mit = "Yes";
}
else
{
mit = "No";
}
llInstantMessage(llGetOwner(),"Regen Mature: " + (string)mit);
}
if(m == "Edit Mode" && editmode == 0 && stopper == 0 && c == randchannel && id == llGetOwner())
{
stopper = 1;
editmode = 1;
llInstantMessage(llGetOwner(),"editmode on");
}
if(m == "Edit Mode" && editmode == 1 && stopper == 0 && c == randchannel && id == llGetOwner())
{
stopper = 1;
editmode = 0;
llInstantMessage(llGetOwner(),"editmode off");
}

if (m == "Help" && c == randchannel && id == llGetOwner())
{
llGiveInventory(llGetOwner(), "Rentals Help");
}
if (llGetSubString(m,0,8) == "set weeks" && id==llGetOwner() && editmode == 1)
{
weeks = (integer)llGetSubString(m,9,llStringLength(m));
llSay(0,"weeks set to " + (string)weeks);
}
if (llGetSubString(m,0,10) == "set renter " && id==llGetOwner() && editmode == 1)
{
rentor = llGetSubString(m,11,llStringLength(m));
llSay(0,"renter set to " + rentor);
}
if (llGetSubString(m,0,9) == "set split " && id==llGetOwner() && editmode == 1)
{
key id = (key)llGetSubString(m,10,llStringLength(m));
splitwith += id;
splitname += llKey2Name(id);
llSay(0,llKey2Name(id) + " added to split with list");
}
if (llGetSubString(m,0,12) == "split remove " && id==llGetOwner() && editmode == 1)
{
string name = llGetSubString(m,13,llStringLength(m));
integer finddata = llListFindList(splitname,(list)name);
if(finddata == -1)
{
llSay(0,"sorry " + name + " not found");
}else
{
llDeleteSubList(splitwith,finddata,finddata);
llDeleteSubList(splitname,finddata,finddata);
llSay(0,name +" removed from shared list");
}
}
if (llGetSubString(m,0,13) == "set rentedfor " && id==llGetOwner() && editmode == 1)
{
string date = llGetTimestamp();
daterented = llGetSubString(date,8,9) + "/" + llGetSubString(date,5,6) + "/" + llGetSubString(date,0,3) + " | Time " + llGetSubString(date,11,15);
original_scale = llGetScale();
original_location = llGetPos();
list renttime = llParseStringKeepNulls(llGetSubString(m,14,llStringLength(m)), [":"], []);
integer days = llList2Integer(renttime,0);
integer hours = llList2Integer(renttime,1);
integer minites = llList2Integer(renttime,2);
integer seconds = llList2Integer(renttime,3);
integer total;
total = (days * 24 * 60 * 60) + (hours * 60 * 60) + (minites * 60) + (seconds);
llSetTexture("info", ALL_SIDES);
llSetPos(original_location + offset);
llSetScale(<0.236,0.236,0.236>);
timerevent = total;
llSetTimerEvent(1);
llWhisper(0,"set to " + (string)days + " days " + (string)hours + " hours " + (string)minites + " mins " + (string)seconds + " seconds");
rented = TRUE;
}
if (llGetSubString(m,0,10) == "set offset " && id==llGetOwner() && editmode == 1)
{
offset = (vector)llGetSubString(m,11,llStringLength(m));
llSay(0,"Offset set to " + (string)offset);
}
if (llGetSubString(m,0,8) == "set prims" && id==llGetOwner() && editmode == 1)
{
objects = (integer)llGetSubString(m,9,llStringLength(m));
llSay(0,"Prims set to " + (string)objects);
}
if (llGetSubString(m,0,8) == "set price" && id==llGetOwner() && editmode == 1)
{
price = (integer)llGetSubString(m,9,llStringLength(m));
llSay(0,"Price set to L$" + (string)price);
}

}
state_entry()
{
editmode = 0;
randchannel = (integer)llFrand(10000000);
llWhisper(0, "Activating...");
ownername = llKey2Name(llGetOwner());
llWhisper(0, "Asking for permission from owner " + ownername + ".");
llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
original_location = llGetPos();
original_scale = llGetScale();
llListenRemove(numListen);
rentedweeks = 0;
numListen = llListen(0, "", "", "" );
llListen(randchannel,"","","");
timerevent = 0;
}

run_time_permissions(integer type)
{
if (type == PERMISSION_DEBIT)
{
ownername = llKey2Name(llGetOwner());
llWhisper(0, "This space is now available for rent.");
not_registered = FALSE;
}
}

timer() {
timerevent--;
if (timerevent != 0)
{
}
else
{
if(rentorkey != NULL_KEY)
{
llInstantMessage(rentorkey,"Your rental at " + llGetRegionName() + " has expired");
}
llSay(0,"rental expired");
string objectname;
objectname = llGetObjectName();
llSetTexture("rentit", ALL_SIDES);
llSetPos(original_location);
llSetScale(original_scale);
numListen = llListen(0, "", "", "" );
rentperiod = "";
rentor = "";
rentorkey = NULL_KEY;
daterented = "";
rentedweeks = 0;
rented = FALSE;
timerevent = 0;
llSetTimerEvent(0);
}
}

touch_start(integer total_number)
{
if(llDetectedKey(0) == llGetOwner())

{
string edit;
if (editmode == 0)
{
edit = "off";
}
if (editmode == 1)
{
edit = "on";
}
llDialog(llGetOwner(),"vender editor \n editmode is set to: " + edit,["Mature","PG","Vacent","Edit Mode","Renter info","Help","Status"],randchannel);
}
else
{
if(rented == FALSE)
{
llWhisper(0, "This space is for rent. The price is $" +(string)price+ " per week. Prim limit is "+(string)objects+" prims. Obey prim limits to avoid termination of agreement. Rent is non-refundable.");
if (mature == 1)
{
llWhisper(0, "Usage Restrictions: This spot is for comercial use. Keep within prim limits or face termination of lease.");
} else
{
llWhisper(0, "Usage Restrictions: This spot is for comercial use. Keep within prim limits or face termination of lease. Keep To PG Rules as in PG Sim");
}

llWhisper(0, "Right click and pay to rent this space. Minimum rental period is "+(string)weeks+" weeks, at $" +(string)(price*weeks)+". If you have any questions, please feel free to IM " + ownername + ". For Help please IM " + ownername + ".");
}
else
{
integer weeks2;
weeks2 = timerevent / 7 / 24 / 60 / 60;
integer days;
days = timerevent / 24 / 60 / 60 - (weeks2 * 7);
integer hours;
hours = timerevent / 60 / 60 - (weeks2 * 7 * 24) - (days * 24);
integer mins;
mins = timerevent / 60 - (weeks2 * 7 * 24 * 60) - (days * 24 * 60) - (hours * 60);
integer seconds;
seconds = timerevent - (weeks2 * 7 * 24 * 60 * 60) - (days * 24 * 60 * 60) - (hours * 60 * 60) - (mins * 60);
llWhisper(0, "This space is occupied by " + rentor + " for " + (string)weeks2 + " weeks | " + (string)days + " days | " + (string)hours + ":" + (string)mins + ";" +(string)seconds);

llWhisper(0, "Max prims is " + (string)objects + ". For help please IM " + ownername + ".");
}
}
}

money(key giver, integer amount)
{
integer amount2 = amount%price;
integer weeks = amount/price;
if(amount>=price*weeks && amount2==0 && rented == FALSE)
{
rentedweeks = amount/price;
string date = llGetTimestamp();
daterented = llGetSubString(date,8,9) + "/" + llGetSubString(date,5,6) + "/" + llGetSubString(date,0,3) + " | Time " + llGetSubString(date,11,15);
original_scale = llGetScale();
original_location = llGetPos();
timerevent = 604800*weeks;
//vector offset = <-2, 0, -1>;
llWhisper(0, "Correct amount");
rentor = llKey2Name(giver);
rented = TRUE;
rentperiod = (string)weeks;
llWhisper(0, "Prim limit is "+(string)objects+" prims.");
llWhisper(0, "Keep prim limits or risk termination of agreement.Rent is non-refundable. IM " + ownername + " with questions.");
llWhisper(0, "Thank you for renting this space . Thank You For Purchasing "+(string)weeks+" weeks . Feel Free To Put Your stuff in now");
llSetTexture("info", ALL_SIDES);
llSetPos(original_location + offset);
llSetScale(<0.236,0.236,0.236>);
rentorkey = giver;
llSetTimerEvent(1);
if(splitwith != [])
{
integer devide = llGetListLength(splitwith) + 1;
integer totatogive = amount/devide;
integer no;
while(no < llGetListLength(splitwith))
{
key dest = llList2Key(splitwith,no);
llGiveMoney(dest,totatogive);
llInstantMessage(dest,"you have bee payed L$"+ (string)totatogive +" by " + llGetObjectName());
no ++;
}
}
}
else if(rented == TRUE)
{
if (llKey2Name(giver) == rentor && amount>=price*weeks && amount2==0)
{
timerevent += (604800*weeks);
llSay(0, "you have incresed your rental by " + (string)weeks + " weeks");
rentedweeks += weeks;
if(splitwith != [])
{
integer devide = llGetListLength(splitwith) + 1;
integer totatogive = amount/devide;
integer no;
while(no < llGetListLength(splitwith))
{
key dest = llList2Key(splitwith,no);
llGiveMoney(dest,totatogive);
llInstantMessage(dest,"you have bee payed L$"+ (string)totatogive +" by " + llGetObjectName());
no ++;
}
}
}
else
{
llGiveMoney(giver, amount);
llSay(0,"sorry please check rental");
}

}

else
{
llWhisper(0, "Minimum rental period is "+(string)weeks+" weeks, at $" +(string)(price*weeks)+ ". If you have any questions, please feel free to IM" + ownername + ".");
llWhisper(0, "Giving money back.");
llGiveMoney(giver, amount);
}
}
}
Bon déjà, le script dont tu livres la copie a été bidouillé (mal) et renvoie une erreur lorsqu'on l'enregistre. Donc je suis allé sur le site pour récupérer une version sans erreur.
Ensuite tu dois copier le texte prévu dans une NoteCard que tu nommes "Rentals Help" et que tu glisses dans la RentBox avec le script. C'est juste une aide mais vaut mieux la mettre.
Une fois que tu as mis le script et la NoteCard dans la prim qui servira de RentBox elle s'initialise et te demande d'accepter les interventions sur ton compte de L$ (pour qu'elle puisse te verser de l'argent) il faut accepter, tu peux alors faire un "Touch" dessus qui t'ouvre un menu.
Tu dois cliquer la touch "Edit Mode" du menu pour pouvoir modifier les paramètres (tu devras re cliquer cette touche quand tu auras fini le paramétrage pour fermer le "Edit Mode").

Une fois en "Edit Mode" il te suffit de taper des commandes dans le chat pour paramétrer (comme expliqué dans la Notecard d'aide). Par exemple : "set price 50", va paramétrer le prix à 50L$... Voilà.
Oui, cette Rental box se paramètre grâce çà des commandes que tu tapes dans le chat.

Dans ce que tu as copié dans ton post plus haut, il y a 2 parties :

Le texte à copier sur une Notecard que tu nommes "Rentals Help" et que tu glisses dans la prim qui serviras de Rental Box.

Le voilà ci dessous :

Citation :
// ==== NOTECARD TEXT ======

//Rentals Help
//----------------

//please click and enable editmode rental before typing comands!!!
//----------------------------------------------------------

//set price ? | sets price of space to whatever ? is
//set weeks ? | sets weeks to whatever ? is
//set prims ? | sets prims to whatever ? is
//set offset ? | sets info box offset to whatever ? is
//set renter ? | sets name of renter to whatever ? is
//set offset ? | sets info box offset to whatever ? is
//set rentedfor ? | sets how long rented for in days:hours:mins:seconds this info is put where ? is
//set split ? | set who you split mony with ? must be users key who you are sharing with
//split remove ? | removes name from split list requires name (case sensative)
// (only after rented)

//features of 1.4

// renters can now pay for extra weeks while in use
// displayed exact time left to renters and owner

// New fetures of 1.5
// now im's user on expire
// able to split money with other people
Et le script par lui même que j'ai récupéré sur le site et que tu glisses aussi dans la prim qui serviras de Rental Box.

Code:
list splitwith;
list splitname;
string ownername;
integer not_registered = TRUE;
vector original_location;
vector original_scale;
integer objects = 25; // objects
integer price = 350; // price
integer weeks = 1; // weaks
vector offset = <0, 0, 2>;
integer mature = 0;
string rentor;
string rentorkey;
integer rented = FALSE;
string rentperiod;
integer numListen;
integer randchannel;
integer editmode;
integer stopper;
string daterented;
integer rentedweeks;
integer timerevent;

default
{
    on_rez(integer change)
    {
    llInstantMessage(llGetOwner(),"for help click item then select help from menu");
        llSetTexture("rentit", ALL_SIDES);
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
        llListen(0,"","","");
        randchannel = (integer)llFrand(10000000);
        llListen(randchannel,"","","");
        editmode = 0;
        timerevent = 0;
        rented == FALSE;
        }
    listen(integer c, string n, key id, string m)
    {
        stopper = 0;
        string objectname;
        objectname = llGetObjectName();
        if (m == "Vacent" && c == randchannel && id == llGetOwner() && rented == TRUE)
        {
            llSetTexture("rentit", ALL_SIDES);
            llSetPos(original_location);
            llSetScale(original_scale);   
            llListenRemove(numListen);
            numListen = llListen(0, "", "", "" );  
            rentperiod = "";
            rentor = "";
            rentorkey = NULL_KEY;
            rented = FALSE;
            daterented = "";
            rentedweeks = 0;
            timerevent = 0;
            llSetTimerEvent(0);
            llSay(0, objectname + " is vacent");
        }
        if (m == "Mature" && c == randchannel && id == llGetOwner())
        {
        mature = 1;
        llSay(0,"set to Mature Area");
        }
        if (m == "Renter info" && c == randchannel && id == llGetOwner())
        {
        integer weeks2;
    weeks2 = timerevent / 7 / 24 / 60 / 60;
    integer days;
    days = timerevent / 24 / 60 / 60 - (weeks2 * 7);
    integer hours;
    hours = timerevent / 60 / 60 - (weeks2 * 7 * 24) - (days * 24);
    integer mins;
    mins = timerevent / 60  - (weeks2 * 7 * 24 * 60) - (days * 24 * 60) - (hours * 60);
    integer seconds;
    seconds = timerevent - (weeks2 * 7 * 24 * 60 * 60) - (days * 24 * 60 * 60) - (hours * 60 * 60) - (mins * 60);
        llInstantMessage(llGetOwner(),"Renter name: " + rentor);
        llInstantMessage(llGetOwner(),"Rented Date: " + daterented);
         llInstantMessage(llGetOwner(),"Rented Left: " + (string)weeks2 + "  weeks | " + (string)days + " days | " + (string)hours + ":" +  (string)mins + ";" +(string)seconds);
        if (rentedweeks >= 2)
        {
        llInstantMessage(llGetOwner(),"Rented amount: " + (string)rentedweeks + " weeks");
        }
        if (rentedweeks == 1)
        {
        llInstantMessage(llGetOwner(),"Rented amount: " + (string)rentedweeks + " week");
        }
        if (rentedweeks <= 0)
        {
        llInstantMessage(llGetOwner(),"Rented amount: N/A");
        }
        }
        if (m == "PG" && c == randchannel && id == llGetOwner())
        {
        mature = 0;
        llSay(0,"set to PG Area");  
        }
        if (m == "Status" && c == randchannel && id == llGetOwner())
        {
            string mit;
         llInstantMessage(llGetOwner(),"Prim's set to " + (string)objects);
         llInstantMessage(llGetOwner(),"Week's set to " + (string)weeks);
         llInstantMessage(llGetOwner(),"Offset set to " + (string)offset);            
         if (mature == 1)
         {
           mit = "Yes";
            }
            else
            {
              mit = "No";   
            }
         llInstantMessage(llGetOwner(),"Regen Mature: " + (string)mit);
        }
         if(m == "Edit Mode" && editmode == 0 && stopper == 0  &&  c == randchannel && id == llGetOwner())
        {
        stopper = 1;
        editmode = 1;
        llInstantMessage(llGetOwner(),"editmode on");
        }
         if(m == "Edit Mode" && editmode == 1 && stopper == 0  && c == randchannel && id == llGetOwner())
        {
        stopper = 1;
        editmode = 0;
        llInstantMessage(llGetOwner(),"editmode off");
        }
        
        if (m == "Help" && c == randchannel && id == llGetOwner())
        {
        llGiveInventory(llGetOwner(), "Rentals Help");
        }
        if (llGetSubString(m,0,8) == "set weeks" && id==llGetOwner()  && editmode == 1)
        {
        weeks = (integer)llGetSubString(m,9,llStringLength(m));
        llSay(0,"weeks set to " + (string)weeks);   
        }
        if (llGetSubString(m,0,10) == "set renter " && id==llGetOwner()  && editmode == 1)
        {
        rentor = llGetSubString(m,11,llStringLength(m));
        llSay(0,"renter set to " + rentor);   
        }
         if (llGetSubString(m,0,9) == "set split " && id==llGetOwner()  && editmode == 1)
        {
        key id = (key)llGetSubString(m,10,llStringLength(m));
        splitwith += id;
        splitname += llKey2Name(id);
        llSay(0,llKey2Name(id) + " added to split with list");   
        }
         if (llGetSubString(m,0,12) == "split remove " && id==llGetOwner()  && editmode == 1)
        {
        string name = llGetSubString(m,13,llStringLength(m));
        integer finddata = llListFindList(splitname,(list)name);
        if(finddata == -1)
        {
         llSay(0,"sorry " + name + " not found");   
        }else
        {
         llDeleteSubList(splitwith,finddata,finddata);
         llDeleteSubList(splitname,finddata,finddata);
         llSay(0,name +" removed from shared list");
        }
        }
        if (llGetSubString(m,0,13) == "set rentedfor " && id==llGetOwner()  && editmode == 1)
        {
        string date = llGetTimestamp();
         daterented = llGetSubString(date,8,9) + "/" + llGetSubString(date,5,6) +  "/" + llGetSubString(date,0,3) + " | Time " +  llGetSubString(date,11,15);
        original_scale = llGetScale();
        original_location = llGetPos();
         list renttime = llParseStringKeepNulls(llGetSubString(m,14,llStringLength(m)), [":"], []);
        integer days = llList2Integer(renttime,0);
        integer hours = llList2Integer(renttime,1);
        integer minites = llList2Integer(renttime,2);
        integer seconds = llList2Integer(renttime,3);
        integer total;
        total = (days * 24 * 60 * 60) + (hours * 60 * 60) + (minites * 60) + (seconds);
        llSetTexture("info", ALL_SIDES);
        llSetPos(original_location + offset);
        llSetScale(<0.236,0.236,0.236>);
        timerevent = total;
        llSetTimerEvent(1);
         llWhisper(0,"set to " + (string)days + " days " + (string)hours + "  hours " + (string)minites + " mins " + (string)seconds + " seconds");
        rented = TRUE;     
        }
        if (llGetSubString(m,0,10) == "set offset " && id==llGetOwner()  && editmode == 1)
        {
        offset = (vector)llGetSubString(m,11,llStringLength(m));
        llSay(0,"Offset set to " + (string)offset);   
        }
        if (llGetSubString(m,0,8) == "set prims" && id==llGetOwner() && editmode == 1)
        {
        objects = (integer)llGetSubString(m,9,llStringLength(m));
        llSay(0,"Prims set to " + (string)objects);   
        }
        if (llGetSubString(m,0,8) == "set price" && id==llGetOwner() && editmode == 1)
        {
        price = (integer)llGetSubString(m,9,llStringLength(m));
        llSay(0,"Price set to L$" + (string)price);   
        }
        
    }
    state_entry()
    {
        editmode = 0;
        randchannel = (integer)llFrand(10000000);
        llWhisper(0, "Activating...");
        ownername = llKey2Name(llGetOwner());
        llWhisper(0, "Asking for permission from owner " + ownername + ".");        
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);        
        original_location = llGetPos();
        original_scale = llGetScale();
        llListenRemove(numListen);
        rentedweeks = 0;
        numListen = llListen(0, "", "", "" );
        llListen(randchannel,"","","");
        timerevent = 0;  
    }

    run_time_permissions(integer type)
    {
        if (type == PERMISSION_DEBIT)
        {
            ownername = llKey2Name(llGetOwner());
            llWhisper(0, "This space is now available for rent.");  
            not_registered = FALSE;
        }
    }
    
    timer() {
        timerevent--;
        if (timerevent != 0)
        {   
        }
        else
        {
        if(rentorkey != NULL_KEY)
        {
        llInstantMessage(rentorkey,"Your rental at " + llGetRegionName() + " has expired");
        }
        llSay(0,"rental expired");
        string objectname;        
        objectname = llGetObjectName();
        llSetTexture("rentit", ALL_SIDES);
        llSetPos(original_location);
        llSetScale(original_scale);        
        numListen = llListen(0, "", "", "" );  
        rentperiod = "";
        rentor = "";
        rentorkey = NULL_KEY;
        daterented = "";
        rentedweeks = 0;
        rented = FALSE;
        timerevent = 0;
        llSetTimerEvent(0);         
    }
}
    
    touch_start(integer total_number)
    {
    if(llDetectedKey(0) == llGetOwner())
    
    {
    string edit;
    if (editmode == 0)
    {
     edit = "off"; 
    }
    if (editmode == 1)
    {
     edit = "on";  
    }
     llDialog(llGetOwner(),"vender editor \n editmode is set to: " +  edit,["Mature","PG","Vacent","Edit Mode","Renter  info","Help","Status"],randchannel);
}
else
{
        if(rented == FALSE)
        {
         llWhisper(0, "This space is for rent. The price is $" +(string)price+ "  per week. Prim limit is "+(string)objects+" prims. Obey prim limits to  avoid termination of agreement. Rent is non-refundable.");
        if (mature == 1)
        {
         llWhisper(0, "Usage Restrictions:  This spot is for comercial use.   Keep within prim limits or face termination of lease.");
} else
{
llWhisper(0,  "Usage Restrictions:  This spot is for comercial use.  Keep within prim  limits or face termination of lease.  Keep To PG Rules as in PG Sim");
}
        
         llWhisper(0, "Right click and pay to rent this space. Minimum rental  period is "+(string)weeks+" weeks, at $" +(string)(price*weeks)+". If  you have any questions, please feel free to IM " + ownername + ". For  Help please IM " + ownername + ".");
        }
        else 
        {
         integer weeks2;
    weeks2 = timerevent / 7 / 24 / 60 / 60;
    integer days;
    days = timerevent / 24 / 60 / 60 - (weeks2 * 7);
    integer hours;
    hours = timerevent / 60 / 60 - (weeks2 * 7 * 24) - (days * 24);
    integer mins;
    mins = timerevent / 60  - (weeks2 * 7 * 24 * 60) - (days * 24 * 60) - (hours * 60);
    integer seconds;
    seconds = timerevent - (weeks2 * 7 * 24 * 60 * 60) - (days * 24 * 60 * 60) - (hours * 60 * 60) - (mins * 60);
         llWhisper(0, "This space is occupied by " + rentor + " for " +  (string)weeks2 + " weeks | " + (string)days + " days | " + (string)hours  + ":" + (string)mins + ";" +(string)seconds);
        
        llWhisper(0, "Max prims is " + (string)objects + ". For help please IM " + ownername + ".");
        }
    }
    }
    
    money(key giver, integer amount)
    {
        integer amount2 = amount%price;
        integer weeks = amount/price;
        if(amount>=price*weeks && amount2==0 && rented == FALSE)
        {
            rentedweeks = amount/price;
            string date = llGetTimestamp();
             daterented = llGetSubString(date,8,9) + "/" + llGetSubString(date,5,6) +  "/" + llGetSubString(date,0,3) + " | Time " +  llGetSubString(date,11,15);
            original_scale = llGetScale();
            original_location = llGetPos();
            timerevent = 604800*weeks;
            //vector offset = <-2, 0, -1>;
            llWhisper(0, "Correct amount");
            rentor = llKey2Name(giver);
            rented = TRUE;
            rentperiod = (string)weeks;
            llWhisper(0, "Prim limit is "+(string)objects+" prims.");
             llWhisper(0, "Keep prim limits or risk termination of agreement.Rent is  non-refundable. IM " + ownername + " with questions.");
             llWhisper(0, "Thank you for renting this space . Thank You For  Purchasing "+(string)weeks+" weeks . Feel Free To Put Your stuff in  now");
            llSetTexture("info", ALL_SIDES);
            llSetPos(original_location + offset);
            llSetScale(<0.236,0.236,0.236>);
            rentorkey = giver;
            llSetTimerEvent(1);
            if(splitwith != [])
            {
            integer devide = llGetListLength(splitwith) + 1;
            integer totatogive = amount/devide;    
            integer no;
            while(no < llGetListLength(splitwith))
            {
            key dest = llList2Key(splitwith,no);
            llGiveMoney(dest,totatogive);
        llInstantMessage(dest,"you have bee payed L$"+ (string)totatogive +" by " + llGetObjectName());
            no ++; 
            }
            }
        }
        else if(rented == TRUE)
        { 
            if (llKey2Name(giver) == rentor && amount>=price*weeks && amount2==0)
            {      
            timerevent += (604800*weeks);
            llSay(0, "you have incresed your rental by " + (string)weeks + " weeks");
            rentedweeks += weeks;
            if(splitwith != [])
            {
            integer devide = llGetListLength(splitwith) + 1;
            integer totatogive = amount/devide;    
            integer no;
            while(no < llGetListLength(splitwith))
            {
            key dest = llList2Key(splitwith,no);
            llGiveMoney(dest,totatogive);
        llInstantMessage(dest,"you have bee payed L$"+ (string)totatogive +" by " + llGetObjectName());
            no ++; 
            } 
            }
        }
            else
            {
             llGiveMoney(giver, amount);
             llSay(0,"sorry please check rental");
            }
        
        }
        
        else
        {
             llWhisper(0, "Minimum rental period is "+(string)weeks+" weeks, at $"  +(string)(price*weeks)+ ". If you have any questions, please feel free  to IM" + ownername + ".");
            llWhisper(0, "Giving money back.");
            llGiveMoney(giver, amount);
        }
    }
}
Une fois que tu as mis le script et la NoteCard dans la prim qui servira de RentBox elle s'initialise et te demande d'accepter les interventions sur ton compte de L$ (pour qu'elle puisse te verser de l'argent) il faut accepter, tu peux alors faire un "Touch" dessus qui t'ouvre un menu.
Tu dois cliquer la touch "Edit Mode" du menu pour pouvoir modifier les paramètres (tu devras re cliquer cette touche quand tu auras fini le paramétrage pour fermer le "Edit Mode").

Une fois en "Edit Mode" il te suffit de taper des commandes dans le chat pour paramétrer (comme expliqué dans la Notecard d'aide). Par exemple : "set price 50", va paramétrer le prix à 50L$...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés