NPC Sit

De DigiWiki.

key gNpc = NULL_KEY;
 
callNpc()
{
    // Replace "" with first and last name
    gNpc = osNpcCreate("", "", llGetPos(), "appearance");
    llSleep(1.0);
    osNpcSit(gNpc, llGetKey(), 0);
}
 
dismissNpc()
{
    osNpcStand(gNpc);
    osNpcRemove(gNpc);
    gNpc = NULL_KEY;
}
 
 
default
{
    on_rez(integer rezed) { do { llSay(0, "Resetting..."); llResetScript(); } while (TRUE); }
 
    changed(integer change)
    {
        if ( change & (CHANGED_REGION_RESTART | CHANGED_REGION_START))
            do { llOwnerSay("Reseting..."); llResetScript(); } while (TRUE);
    }
 
    state_entry()
    {
        if (llGetInventoryType("appearance") == INVENTORY_NOTECARD) state running;
        else llOwnerSay("Click to make appearance.");
    }
 
    touch_end(integer touched)
    {
        if (llGetOwner() == llDetectedKey(0))
        {
            if (llGetLinkNumber() == llDetectedLinkNumber(0))
            {
                osOwnerSaveAppearance("appearance");
                state running;
            }
        }
    }
}
 
state running
{
    on_rez(integer rezed) { do { llSay(0, "Resetting..."); llResetScript(); } while (TRUE); }
 
    changed(integer change)
    {
        if ( change & (CHANGED_REGION_RESTART | CHANGED_REGION_START))
            do { llOwnerSay("Reseting..."); llResetScript(); } while (TRUE);
    }
 
    state_entry()
    {
        callNpc();
    }
 
    touch_end(integer touched)
    {
        if (llGetOwner() == llDetectedKey(0))
        {
            if (llGetLinkNumber() == llDetectedLinkNumber(0))
            {
                if (gNpc == NULL_KEY) callNpc();
                else dismissNpc();
            }
        }
    }
}
Outils personnels
  • Cette page a été consultée 801 fois.
donate
Google Ads