OsNpcCreate
From OpenSimulator
(Difference between revisions)
m (Add See Also) |
m (Add links to exemples using OS_NPC_CREATOR_OWNED and OS_NPC_NOT_OWNED) |
||
Line 55: | Line 55: | ||
} | } | ||
</source> | </source> | ||
+ | |||
|additional_info= Some more useful info: | |additional_info= Some more useful info: | ||
* NPC stands for Non-Player Character. | * NPC stands for Non-Player Character. | ||
Line 61: | Line 62: | ||
* '''In current OpenSimulator development code (from commit c4972e77 on Thu Jan 12 2012), an overloaded version of osNpcCreate() has been added.''' | * '''In current OpenSimulator development code (from commit c4972e77 on Thu Jan 12 2012), an overloaded version of osNpcCreate() has been added.''' | ||
** This has the signature key osNpcCreate(string firstname, string lastname, vector position, string cloneFrom, integer options). | ** This has the signature key osNpcCreate(string firstname, string lastname, vector position, string cloneFrom, integer options). | ||
− | ** The options field can be either OS_NPC_CREATOR_OWNED or OS_NPC_NOT_OWNED. | + | ** The options field can be either OS_NPC_CREATOR_OWNED or OS_NPC_NOT_OWNED. For exemples, see [[osNpcGetOwner]] |
** OS_NPC_CREATOR_OWNED will create an 'owned' NPC that will only respond to osNpc* commands issued from scripts that have the same owner as the one that created the NPC. | ** OS_NPC_CREATOR_OWNED will create an 'owned' NPC that will only respond to osNpc* commands issued from scripts that have the same owner as the one that created the NPC. | ||
** OS_NPC_NOT_OWNED will create an 'unowned' NPC that will respond to any script that has OSSL permissions to call osNpc* commands. | ** OS_NPC_NOT_OWNED will create an 'unowned' NPC that will respond to any script that has OSSL permissions to call osNpc* commands. | ||
− | ** Example: "key npc = osNpcCreate("ImYour", "Clone", npcPos, "appearance", OS_NPC_CREATOR_OWNED);" | + | ** Example: "key npc = osNpcCreate("ImYour", "Clone", npcPos, "appearance", OS_NPC_CREATOR_OWNED);". For full exemples, see [[osNpcGetOwner]] |
** The existing osNpcCreate() function without the options field will continue to exist. | ** The existing osNpcCreate() function without the options field will continue to exist. | ||
* From git master commit 3b59af22 on Friday Jan 13 2012 (after the OpenSimulator 0.7.2 release), the avatar created by the existing osNpc* function without the options parameter will create an 'owned' NPC rather than an 'unowned' one. Please see the discussion above for information on these terms. This is a hopefully rare case where the behaviour of an existing function changes slightly. If you continue to need an 'unowned' NPC, please use the OS_NPC_NOT_OWNED option described above. | * From git master commit 3b59af22 on Friday Jan 13 2012 (after the OpenSimulator 0.7.2 release), the avatar created by the existing osNpc* function without the options parameter will create an 'owned' NPC rather than an 'unowned' one. Please see the discussion above for information on these terms. This is a hopefully rare case where the behaviour of an existing function changes slightly. If you continue to need an 'unowned' NPC, please use the OS_NPC_NOT_OWNED option described above. |
Revision as of 08:58, 4 December 2020
key osNpcCreate(string firstname, string lastname, vector position, string cloneFrom)
key osNpcCreate(string firstname, string lastname, vector position, string cloneFrom, integer options) | |
| |
Threat Level | High |
Permissions | ${OSSL|osslNPC} |
Extra Delay | 0 seconds |
Example(s) | |
// // osNpcCreate Script Exemple // Author: djphil // key npc; default { state_entry() { llSay(PUBLIC_CHANNEL, "Touch to see osNpcCreate usage."); } touch_start(integer number) { key toucher = llDetectedKey(0); vector npcPos = llGetPos() + <1.0, 0.0, 1.0>; osAgentSaveAppearance(toucher, "appearance"); npc = osNpcCreate("ImYour", "Clone", npcPos, "appearance"); state hasNPC; } } state hasNPC { state_entry() { llSetTimerEvent(5.0); } timer() { llSetTimerEvent(0.0); osNpcSay(npc, "Hello world!"); } touch_start(integer number) { osNpcSay(npc, "Goodbye!"); llSetTimerEvent(0.0); osNpcRemove(npc); npc = NULL_KEY; state default; } } | |
Notes | |
Some more useful info:
|
See Also:
- osNpcCreate
- osNpcRemove