iliveisl

Skriptiranje Savjeti: Da li vaše čarape skriptu je potrebno?

9 Komentari

Ranije sam napisao post na mono i bytecode Sharing . U tom post, sam spomenuo da je bilo nekoliko načina na koje skripta može biti napisan da se konfiguracijske parametre. Biti u stanju konfigurirati skripte za više svrhe ima najmanje dvije prednosti.

  • Skripte koje ne treba sastaviti napraviti male promjene parametara podršku bytecode dijeljenje.
  • Biti u stanju konfigurirati jednu skriptu za služiti više svrhe potencijalno čini scenarij lakše održavati.

Jedan od načina da se skripta konfigurirati je da stavite čarape u svom objektu. Da, da, znam da zvuči čudno. Ali, to je stvarno prilično jednostavan način za postavljanje jednostavnih konfiguracijskih parametara. A ako vam se ne sviđa čarape možete koristiti bilo koji objekt odjeću. LSL funkcije koje se bave odjeća zapravo ne može reći kakvu vrstu odjeće je.

Uglavnom, ono što trebate učiniti je mjesto odjevni predmet s određenim nazivom u objektu. Tada su pisma pročitao objekt inventar u potrazi za odjevne predmete. Ako pronađe stavke s imenom ključne riječi koje ste odabrali, a zatim postaviti zastavu, flip prebaciti ili što vam je potrebno učiniti u svom pismu da bi ga se ponašaju drugačije.

Prvo morate napraviti par čarapa. Ne brinite. To je lako. Ne morate ništa učiniti da ih, osim imena ih kao svoje ime sve što zanima Otvorite svoj inventar, odaberite Odjeća "mapu i desni klik na njega. Na izborniku koji se otvori, odaberite "New Odjeća ', zatim' New čarape '. Ako ih ne preimenovati sada, oni će se zvati "New čarape '. Povucite ih inventara vašeg objekta i preimenovati ih u što god želite.

LlGetInventoryName funkcija je ključ za čarape pristup. To će se vratiti n'th stavku navedeni tip iz inventara. U ovom slučaju sam određene '0 'za broj stavke, tako smo dobili prvu stavku.

čarape = llToLower (llGetInventoryName (INVENTORY_CLOTHING, 0));

U gornjem primjeru, ja sam štedi ime prve stavke tipa INVENTORY_CLOTHING u varijablu 'čarape'. Ja također koristiti llToLower funkciju kako bi se malim slovima tako da ne morate brinuti o tome što su stvari slučaju. Učinit ću sve moje uspoređuje u mala slova.

Za ovu demonstraciju, pretpostavka je da postoji samo jedan odjevni predmet u popis. Ako postoje i drugi, onaj koji želite možda neće biti prvi i kod će morati petlja kroz i pogled na sve odjevne predmete.

U uzorku skriptu, kod odmah nakon llGetInventory prolazi kroz niz, ako izjave da provjerite različitim imenima i postavlja zastave prema potrebi. U ovom primjeru, bio sam postavljanje ispravljanje zastavu. Naravno da bi jednako lako postaviti 'lijevo' ili 'pravo' reći skriptu za otvaranje vrata lijevo ili desno. Ili 'plave' ili 'crvene' da bi čestica skripte bljuvanje plava ili crvena čestica. Vi dobijete ideju.

Nekoliko komentara o uzorku koda.

Koristim on_rez događaj u većini mojih skripti da uzrokuje automatsko resetiranje kad se objekt rezzed.

Također, u ovom uzorku, ja se promijenio događaj za otkrivanje kada promjene objekt inventara. Rezultat je da ako preimenovati stavku čarape inventara, niti mijenjati popis stavki, skripta automatski resetira.

Zatim na kraju, touch_start događaj samo je uključena, tako da možete dirati objekt i to izvješće trenutnu postavku zastave.

A sada za primjer koda. To ne čini ništa korisno. Samo pokazuje pristup. I to radi u oba SL i OpenSim.

// Config Demo - Socks // // Script to demonstrate the use of socks to set config parameters. // // The clothing object name in inventory is checked to see if it is // a particular keyword of 'debug on' or 'debug off'. Set the gDebug // flag accordingly. // // Additional inventory objects could be used to set other flags. // // Micheil Merlin/SL - 12/1/2009 integer gDebug = 0; // Debug flag. default { state_entry() { string socks; // Name of inventory clothing object. // Get the name of the first inventory item of type clothing. Any // clothing type will work. The llGetInventoryName function does // not look for socks specfically. The llGetInventoryName function // is called with a '0' to get the first item of type clothing. It // could be called successively to obtain additional clothing // items. If it returns an empty string, there is no more // inventory of that type. socks = llToLower(llGetInventoryName(INVENTORY_CLOTHING, 0)); // Look for clothing name of 'debug on' in lower case. if (socks == "debug on") { gDebug = 1; // Look for clothing name of 'debug off' in lower case. } else if (socks == "debug off") { gDebug = 0; // Check for the existence of the inventory item. } else if (socks == "") { llSay(0, "No inventory of type clothing exists."); // If the clothing name is neither, then just say it. } else { llSay(0, "Clothing name of '" + socks + "' found. We weren't expecting this."); } llSay(0, "Debug is set to " + (string)gDebug); // // The socks processing is complete. Other code could be inserted // here. // } // This event is triggered when the object is rezzed. on_rez(integer num) { llResetScript(); // Reset script when object rezzed. } // This event is triggered when the object has changed. changed(integer change) { // If inventory has changed, assume script reset is needed. // Adding socks to the inventory or renaming them will cause this // event to trigger. if (change == CHANGED_INVENTORY) { llResetScript(); } } // This event is triggered when the object is touched. touch_start(integer total_number) { llSay(0, "Debug is set to " + (string)gDebug); } } 
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Autor Micheil Merlin

2 siječanj 2010 u 15:15

Objavljeno u drugi život

Tagged with ,

9 Responses to "Skriptiranje Savjeti: Ima li vaša skripta treba čarape? '

Pretplatite se na komentare sa RSS ili trackback za 'Skriptiranje Savjeti: Ima li vaša skripta treba čarape?'.

  1. [...] Ovaj post je Twitted po iliveisl [...]

    Twitted po iliveisl

    2 siječnja 10 u 15:18

  2. Ja sam sumnjičav toga, jer ne predstavlja 100% siguran način provjere parametara su dobili od proizvoda stvaratelja ili zlonamjerni korisnik.

    Zauber Exonar

    2 siječnja 10 u 15:46

  3. Objavljeno prije nego što sam završio, lol. Zlonamjernih korisnika, mislim kupac koji je kupio "standard" verzija proizvoda koristeći ovu metodu, a zatim figuring out što učiniti kako bi ga promijeniti u deluxe verziji.

    Zauber Exonar

    2 siječnja 10 u 15:47

  4. Pa, ako razmišljate o komercijalni proizvod, kreator je u potpunu kontrolu nad onim što oni omogućuju da se konfigurirati na taj način. Ja obično ne mislim u smislu komercijalne proizvode, ali više uzduž linije od nekoga stvara stvari za vlastite potrebe kao da je ono što mi je činiti većinu.

    Micheil Merlin

    2 siječnja 10 u 16:16

  5. No, za komercijalni proizvod gdje je bio pun oglašen kao osobito privlačiv i demo verziju, ja vjerojatno samo će koristiti dvije verzije skripte. Ja bih vjerojatno još uvijek koristiti jednu skriptu sa Hard-kodirano prebaciti u da ih djeluju drugačije. To znači da ih izradi dva puta, ali još uvijek samo da bi održali jedan izvor.

    Micheil Merlin

    2 siječnja 10 u 16:23

  6. OMG, ti se govori o stvarnim čarape! Mislio sam da je samo neki OOP jezik! lol, ovo je moju pozornost (što znači da sam zapravo će ga pročitati, a ne moje čitanje spaz brzine)

    hvala na ovaj post (i dolikuje, trebam staviti na deblji čarape, to je prilično hladno ovdje gore u Skandinavija!)

    iliveisl

    2 siječnja 10 u 16:53

  7. Nice čarape, ener. Ja nekako napraviti nešto slično, ponekad, u mojoj skripti. Možda ću dodati 'extra' objekt (ili skripta) u moj glavni prim sadržaja. Imam moj glavni pismo uvijek izgleda za tu stavku (koji je postavljen na Ne kopirati) kada se resetira / radi ... ako ne nađe, cijeli thingie je onemogućen ili "umre." To je još jedan način da (pokušati) kako bi zaštitili sadržaj / skripte iz copybot i voli. Ako želite biti u mogućnosti ažurirati stvari koje je prethodno prodao kupcima (kao što je konj i neke druge lijepe kreatori ne), on dobiva malo više komplicirano, naravno.

    DreamWalker

    2 siječnja 10 u 21:58

  8. [...] Izvorne ovdje: Skriptiranje Savjeti: Ima li vaša skripta treba čarape? «By admin | Kategorija: skriptiranje | Tags: ranije, iliveisl, iliveisl-nekretnine, post-na-mono, [...]

  9. [...] Izvorne ovdje: skriptnog Savjeti: Ima li vaša skripta treba čarape? Â «By admin | Kategorija: skriptiranje | Tags: ranije, iliveisl, iliveisl-nekretnine, post-na-mono, [...]

Dopust jedan Odgovor - Dodajte svoje misli