Jump to content

conrad Evanier

Resident
  • Posts

    98
  • Joined

  • Last visited

Everything posted by conrad Evanier

  1. Hi all im trying to get float text to display what is said in chat on a chat command by owner with out any luck just wondering if this is possible, its for a hud im creating it sounds easy to do but cant figure it out lol so lets say my chat trigger is /8 so i say /8 hello and i want the float text to say hello i can trigger it to say a set message by chat but not what i say in chat so far! any help is welcome ty
  2. Ah nice 1 thanks i was wondering how to get rid of the space and escapeurl did the job fantastic, thats that sorted. Thank you:)
  3. This is driving me nuts lol why wont this send a proper tp in an im sent by script, it gives tp option but only the first part of region name is selected so for magnetik island only magnetik is selected for tp which wont work of course i must be missing something here? llInstantMessage(llGetOwner(), "TP TO: secondlife:///app/teleport/"+(llGetRegionName() + "/" +"/" +(string)initPos.x + "/" + (string)initPos.y + "/" + (string)initPos.z + "/") );
  4. Na cant put in root prim as wont it to be used from button so iv come up with this dose job well default{ touch_start(integer total_number) { if(llGetLinkName(llDetectedLinkNumber(0)) == "Button1") { llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_NOTECARD, 0)); } else if(llGetLinkName(llDetectedLinkNumber(0)) == "Button2") { // Do summin else } // And add as many as you need }}
  5. HI just wondering can you have a note card giver in 1 prim that is triggered when other in link set is clicked? i dont wont to use a listen channel.!!
  6. Hi all just after some advise about setting auto return, so far we just check land and send stuff back but wer getting a lot of junk left so i want to set up auto return, but just want to know if tenants set there objects to our group will they stay? as i dont want to send all our shop owners stuff back to them lol. i have granted rights to build if they have dealer tag will this keep their stuff on land when auto return cleans up?
  7. Hi iv got a cool mall on a busy sim we have some shops up for rent at great prices, we are next door to an art gallery and a very bust club, i set up money hunts all the time to get trafic in and we have a lot of prize boards and freebies. If you dont fancy taking a shop i have set up stalls for only L$40 per week and add boards at just L$5 :0 i sell rental boxs group joiners sploders and lots more opposite my store is the coolest tattoo store in sl barb makes custom made ones too, so we get a lot of visiters. Just search Designer Quarters or im me for land mark. Also we come up at top of search list for split profit rent box
  8. Hi all iv helped wolfen out inworld with this script and it did the job, you can add more effects to the glow prim light or colour. Am posting on here incase anyone else needs use of it ///THIS SCRIPT GOSE IN THE BUTTON PRIM/////////////////integer channel = 190;integer isOn;default{ state_entry() { } touch_start(integer num) { if (!isOn) { isOn = TRUE; llRegionSay(channel, "on"); } else { isOn = FALSE; llRegionSay(channel, "off"); } }}////////////////THEN PUT THIS SECOND SCRIPT IN GLOW PRIMS////////////////////////////////integer channel = 190;default{ state_entry() { llListen(channel,"","",""); } listen (integer channel, string name, key id, string message) { if (message == "on") { llSetPrimitiveParams([PRIM_GLOW, ALL_SIDES, 0.9]); } if (message == "off") { llSetPrimitiveParams([PRIM_GLOW, ALL_SIDES, 0.0]); } } } You can have as many glow prims as you like .
  9. Hi i take it the flame is particle iv messed around with particles a lot and have a great engine if you still need help its click start stop just im me if you need it
  10. Hi to keep things easy for you if you have eddit perms to Rolig Loon's Multipose Stand you could just change it from sit activated to touch_start and attach to your hud then you could just click it when needed!
  11. Hi innula yeh i had the same idea and works well, i just added 2 new optins to my main menu to reset the 2 scripts i need to reset at different times, like you say no need for extra script and its perfect. Just what i was after. its a very useful option to have in my menu thanks for all the advice on this.
  12. Very helpful iv used llResetOtherScript in a menu option and works well. If you had multiple prims all with scripts in you could use this in a menu to reset each could be very handy
  13. Hi just wondering is there a script that can be put in an object that will restart ALL scripts in that object when clicked??
  14. Nice 1 Darkie it now works great and no other probs, lol the mistake i made was not puting the line in on state rented i just put it in on idle lol yeh wel am learning and thanks for all you help am amazed at how quick u all jumped on it cool.
  15. Sure heres the rent script with out PAY_HIDE i use a prmcount script and a split list script along side it but this is the 1 that needs a fast pay set up in it so it adjusts to the amount people set on note card as rentalCost. Thanks for your help on this //Optionsvector rentalOffset = <0,0,10>;float updateInterval = 60.0; //secondsstring infoNotecard = ""; //Variablesstring tierName;float rentalCost;integer primCount;key renterID;string renterName;float rentalTime;integer listenQueryID;vector initPos;vector initScale;integer count;integer lineCount;key readKey;string rentalGrade;integer primAllotment; //Constantsfloat ONE_WEEK = 604800.0;float ONE_DAY = 86400.0;float ONE_HOUR = 3600.0; dispString(string value){ llSetText(value, <1,1,1>, 1);}sendReminder(string message){ llInstantMessage(renterID, "Your lease located in " + llGetRegionName() + " (" + (string)initPos.x + "," + (string)initPos.y + "," + (string)initPos.z + ") will expire " + message); }saveData(){ list saveData; vector storageVector; saveData += renterID; saveData += renterName; saveData += llRound(rentalTime); storageVector = initPos * 1000; saveData += "<" + (string)llRound(storageVector.x) + "," + (string)llRound(storageVector.y) + "," + (string)llRound(storageVector.z) + ">"; storageVector = initScale * 1000; saveData += "<" + (string)llRound(storageVector.x) + "," + (string)llRound(storageVector.y) + "," + (string)llRound(storageVector.z) + ">"; llSetObjectDesc(llDumpList2String(saveData, "|"));}string getTimeString(integer time){ integer days; integer hours; integer minutes; integer seconds; days = llRound(time / 86400); time = time % 86400; hours = (time / 3600); time = time % 3600; minutes = time / 60; time = time % 60; seconds = time; return (string)days + " days, " + (string)hours + " hours, " + (string)minutes + " minutes"; // + ":" + (string)seconds; } integer setupDialogListen(){ integer chatChannel = (integer)llFrand(2000000); llListenRemove(listenQueryID); listenQueryID = llListen(chatChannel, "", NULL_KEY, ""); return chatChannel;} updateTimeDisp(){ dispString("Left click for prim count\nLeased by: " + renterName + "\nTime Remaining: " + getTimeString(llRound(rentalTime))); } dispData(){ llSay(0, "========================"); llSay(0, "Rental Space Information"); llSay(0, "========================"); llSay(0, "This space is currently leased by " + renterName); llSay(0, "The current rental price is L$" + (string)((integer)rentalCost) + " per week."); llSay(0, "This space will be open for lease in " + getTimeString(llRound(rentalTime)) + "."); llSay(0, "Memory Free: " + (string)llGetFreeMemory());}default{ state_entry() { state initialize; }} state initialize{ state_entry() { llSetTimerEvent(300); llOwnerSay("Waiting to obtain Debit Permissions."); llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } run_time_permissions(integer permissions) { //Only wait for payment if the owner agreed to pay out money if (permissions & PERMISSION_DEBIT) { state loadSettings; } } on_rez(integer start_param) { llResetScript(); } timer() { llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } touch_start(integer total_number) { integer x; for (x = 0; x < total_number; x += 1) { if (llDetectedKey(x) == llGetOwner()) { llResetScript(); } } llSay(0, "Waiting to obtain Debit Permissions from Owner."); } state_exit() { llSetTimerEvent(0); llSay(0, "Initialized."); }} state loadSettings{ state_entry() { integer found = FALSE; integer x; count = 0; lineCount = 0; list savedList = llCSV2List(llGetObjectDesc()); if (llGetListLength(savedList) == 4) { rentalGrade = llList2String(savedList, 0); } else { rentalGrade = llGetObjectDesc(); } for (x = 0; x < llGetInventoryNumber(INVENTORY_NOTECARD); x += 1) { if (llGetInventoryName(INVENTORY_NOTECARD, x) == "Settings") { found = TRUE; } } if (found) { llOwnerSay("Reading Settings Notecard..."); readKey = llGetNotecardLine("Settings", lineCount); } else { llOwnerSay("Settings Notecard Not Found."); llResetScript(); } } dataserver(key requested, string data) { integer integerData; float floatData; if (requested == readKey) { if (data != EOF) { if ((llSubStringIndex(data, "#") != 0) && (data != "") && (data != " ")) { integerData = (integer)data; floatData = (float)data; if (count == 0) { tierName = data; } else if (count == 1) { if (integerData >= 0) { rentalCost = integerData; } else { rentalCost = 0; } } else if (count == 2) { if (integerData >= 1) { primCount = integerData; } else { primCount = 1; } } else if (count == 3) { rentalOffset = (vector)data; } else if (count == 4) { infoNotecard = data; } count += 1; } lineCount += 1; readKey = llGetNotecardLine("Settings", lineCount); } else { llOwnerSay("==============="); llOwnerSay("Settings Loaded"); llOwnerSay("==============="); llOwnerSay("Space Name: " + tierName); llOwnerSay("Rental Cost: L$" + (string)llRound(rentalCost)); llOwnerSay("Prims allowed: " + (string)primCount); llOwnerSay("==============="); llOwnerSay("Ready for Service!"); list savedList = llParseString2List(llGetObjectDesc(), ["|"], []); if (llGetListLength(savedList) == 5) { renterID = llList2Key(savedList, 01); renterName = llList2String(savedList, 1); rentalTime = llList2Integer(savedList, 2); initPos = (vector)llList2String(savedList, 3) / 1000; initScale = (vector)llList2String(savedList, 4) / 1000; state rented; } else { renterID = NULL_KEY; renterName = "Nobody"; rentalTime = 0; initPos = llGetPos(); initScale = llGetScale(); state idle; } } } }}state idle{ state_entry() { llSetObjectDesc(""); llSetTexture("rentthisspace", ALL_SIDES); llSetScale(initScale); llSetPos(initPos); llSetTimerEvent(updateInterval); dispString(tierName + "\nLease this space for L$" + (string)llRound(rentalCost) + " per week.\n"+ (string)primCount + " prims\nPay this Box to begin your lease."); } moving_end() { initPos = llGetPos(); } changed(integer change) { if (change & CHANGED_SCALE) { initScale = llGetScale(); } } touch_start(integer num_detected) { integer x; integer chatChannel; for (x = 0; x < num_detected; x += 1) { if (llDetectedKey(x) == llGetOwner()) { llDialog(llGetOwner(), "Owner Options. Select one of the options below...", ["Info", "Reset"], setupDialogListen()); return; } } llSay(0, "Lease this space for L$" + (string)llRound(rentalCost) + " per week. " + (string)primCount + " prims. Pay this Sign to begin your lease."); for (x = 0; x < num_detected; x += 1) { llGiveInventory(llDetectedKey(x), infoNotecard); } } listen(integer channel, string name, key id, string message) { if (message == "Reset") { llResetScript(); } else if (message == "Info") { llListenRemove(listenQueryID); dispData(); llSay(0, "Lease this space for L$" + (string)llRound(rentalCost) + " per week. "+ (string)primCount + " prims. Pay this Sign to begin your lease."); llGiveInventory(id, infoNotecard); } } money(key id, integer amount) { if (amount >= rentalCost) { renterID = id; renterName = llKey2Name(renterID); rentalTime = ONE_WEEK * amount / rentalCost; saveData(); llSay(0, "Thank you " + renterName + " for leasing! Your lease will expire in " + getTimeString((integer)rentalTime) + "."); state rented; } else { llSay(0, "This space costs L$" + (string)rentalCost + " to rent."); llGiveMoney(id, amount); } }} state rented{ state_entry() { llSetTexture("rented", ALL_SIDES); llSetScale(<0.5, 0.5, 0.5>); llSetPos(initPos + rentalOffset); updateTimeDisp(); llResetTime(); llSetTimerEvent(updateInterval); } touch_start(integer num_detected) { integer x; key detectedKey; for (x = 0; x < num_detected; x += 1) { detectedKey = llDetectedKey(x); if (detectedKey == llGetOwner()) { llDialog(detectedKey, "Lease Options. Select one of the options below...", ["Info", "Release", "Reset"], setupDialogListen()); } else if (detectedKey == renterID) { llDialog(detectedKey, "Click for info or click Release to end your Lease", ["Info", "Release"], setupDialogListen()); } else { dispData(); llGiveInventory(detectedKey, infoNotecard); } } } money(key id, integer amount) { if ((id == renterID)||(id == llGetOwner())) { float addTime; addTime = ONE_WEEK*amount/rentalCost; rentalTime += addTime; llInstantMessage(id, "Adding " + getTimeString(llRound(addTime)) + " to your lease. Lease Time is Now: " + getTimeString(llRound(rentalTime)) + "."); saveData(); updateTimeDisp(); } else { llGiveMoney(id, amount); llInstantMessage(id, "Left click for prim count\nThis space is currently leased by " + renterName + ". This space will be open for lease in " + getTimeString(llRound(rentalTime)) + "."); } } listen(integer channel, string name, key id, string message) { integer refundAmount; llListenRemove(listenQueryID); if (message == "Info") { dispData(); llGiveInventory(id, infoNotecard); } else if (message == "Release") { llDialog(id, "Are you sure you want to TERMINATE this rent?", ["Yes", "No"], setupDialogListen()); } else if (message == "Yes") { llInstantMessage(llGetOwner(), "LEASE TERMINATED: leased by " + renterName + " located in " + llGetRegionName() + " (" + (string)initPos.x + "," + (string)initPos.y + "," + (string)initPos.z + ") has ended."); state idle; } else if (message == "Reset") { llResetScript(); } } timer() { float timeElapsed = llGetAndResetTime(); if (timeElapsed > (updateInterval * 4)) { timeElapsed = updateInterval; } rentalTime -= timeElapsed; saveData(); updateTimeDisp(); //Process Reminders if (rentalTime <= 0) { llInstantMessage(llGetOwner(), "LEASE EXPIRED: leased by " + renterName + " located in " + llGetRegionName() + " (" + (string)initPos.x + "," + (string)initPos.y + "," + (string)initPos.z + ") has expired."); state idle; } if ((rentalTime <= ONE_DAY)&&(rentalTime >= ONE_DAY - (updateInterval*2))) { sendReminder("in one day."); } else if ((rentalTime <= ONE_HOUR*12)&&(rentalTime >= ONE_HOUR*12 - (updateInterval*2))) { sendReminder("in 12 hours."); } else if ((rentalTime <= ONE_HOUR)&&(rentalTime >= ONE_HOUR - (updateInterval*2))) { sendReminder("in one hour."); } }}
  16. Still just showing payment option as blank, must need to pay_calculate some where lol im not having much luck with this 1
  17. Thanks void so now i can hide the default payment options but having trouble linking payment options to the float rentalcost how do i get it to show the coat set by owner??
  18. Hi can anyone help me i need to know what to add to my rent script so when someone clicks pay the pay menu gives them a choice of 1 to 4 weeks of set cost rather than having to enter the amount. Example if owner sets rent at L$ 10 a week pay option gives tenant a choice of 10 20 30 40 depending on how many weeks they wont 1 2 3 or 4, any help would be great as im ony a learner as far as scripting goes :)
  19. thanks Shockwave but its not the key finder i was after i have that already i needed the script to read from a note card and thanks to Darkie Minotar it dose that now, Thanks again for all the help
  20. Thanks Darkie Minotar thats exactly what i was after works a treat thanks for your help:)
  21. Hi iv got a great split income script that works well, the trouble im having is getting it to configure from a note card iv tried many time with no luck. Im posting on here in the hope some one can help me out feel free to copy and use script your self as its only part of a creation and not the main script. It needs to get avi key from a note card named settings so you dont have to eddit script as not many customers like doing this lol thanks for looking its the list partners i need it to get from note card! key owner;integer stp;key req;integer done=0; //list of partners add avi key in the commas the number is persentage of split this can be changed// list partners=[ "", 10, "", 20 ]; list garbage=[]; list finaldata=[]; //Function Handlers //Next step to check in partners list next(){stp+=2;llSetTimerEvent(0.1);} //Return the string for the current step string l2s(){return llList2String(partners,stp);} //Request debit permissions for split profit reqq(){llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);} //Return the amt to give to the partner integer cut(integer percent, integer amt){return (integer)(((float)percent/100)*amt);} //Add data to be removed to the garbage list. discard(string tmp){llOwnerSay("Discarding "+tmp+" due to invalid name/key.");garbage+=tmp;} //Verify the list to see it is a UUID. If not, then //do an HTTP Request to acquire the person's UUID. listcheck(){ if(stp>=(llGetListLength(partners)-1)){ dump();return; } string tmp=l2s(); if(tmp==""){llOwnerSay("Error: There are blank entries in the script. Please enter data the data necessary.");return;} if((key)tmp!=NULL_KEY && llStringLength(tmp)==36){ finaldata+=[tmp,llList2Integer(partners,stp+1)]; next();return; } else{ if(llGetListLength(llParseString2List(tmp,[" "],[]))!=2){ discard(tmp);next();return; } else{ req=llHTTPRequest("http://w-hat.com/name2key?terse=1&name="+llEscapeURL(tmp),[],""); } } } //Dump the invalid data dump(){ partners=[];garbage=[]; done=1;llSetTimerEvent(0.25); } //Pay out to the partners based on each of their shares payout(integer amt){integer a=0;integer b=llGetListLength(finaldata); for(;a<b;a++){ if(a%2==0){ if(llList2Integer(finaldata,a+1)!=0) llGiveMoney(llList2Key(finaldata,a),cut(llList2Integer(finaldata,a+1),amt)); } } } default{ on_rez(integer parm){llResetScript();} state_entry(){owner=llGetOwner();llOwnerSay("/me requires Debit Permissions to split profits. Please accept."); reqq(); } http_response(key rid, integer stat, list metadata, string body){ if(req==rid){ string tmp=l2s(); if((key)body==NULL_KEY){ discard(tmp);next();return; } else{ garbage+=tmp;finaldata+=body;finaldata+=llList2Integer(partners,stp+1);next(); } } } run_time_permissions(integer perm){ if(perm&PERMISSION_DEBIT){ llOwnerSay("Please provide a moment to verify the list of profit holders."); stp=0;listcheck(); } } timer(){ llSetTimerEvent(0.0); if(!done)listcheck(); else state ready2pay; } } state ready2pay{ on_rez(integer parm){llResetScript();} state_entry(){llOwnerSay("List has been verified. Split profit is now enabled for all on the partner list.");} money(key who, integer amt){ if(llGetListLength(finaldata)<=1) return; payout(amt); } }
×
×
  • Create New...