Npc

Aus 3DGrid Wiki
Wechseln zu: Navigation, Suche

Vollständige Anleitung zur Erstellung eines NPC's

Servereinstellungen (OpenSim.ini)

Damit man in OpenSim NPC's erstellen kann, müssen in den Einstellungen einige Änderungen gemacht werden um nötige Berechtigungen den Benutzer(Gruppen) zu erteilen. Unten gezeigte Einstellungen sind ein Beispiel. Die einzelnen Befehle können natürlich in den Thread-Level angesiedelt werden, den man maximal freigeben möchte.

OSSL Code

 1 ;; *** Threat-Level=High
 2 Allow_osOwnerSaveAppearance = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 3 Allow_osCauseDamage = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 4 Allow_osCauseHealing = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 5 Allow_osGetAgentIP = ESTATE_OWNER, ESTATE_MANAGER
 6 Allow_osGetLinkPrimitiveParams = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 7 Allow_osGetPrimitiveParams = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 8 Allow_osGetRegionMapTexture = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
 9 Allow_osGetScriptEngineName = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
10 Allow_osGetSimulatorVersion = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
11 Allow_osMakeNotecard = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
12 Allow_osMatchString = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
13 Allow_osNpcCreate = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
14 Allow_osNpcGetPos = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
15 Allow_osNpcGetRot = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
16 Allow_osNpcLoadAppearance = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
17 Allow_osNpcMoveTo = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
18 Allow_osNpcMoveToTarget = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
19 Allow_osNpcPlayAnimation = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
20 Allow_osNpcRemove = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
21 Allow_osNpcSaveAppearance = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
22 Allow_osNpcSay = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
23 Allow_osNpcSetRot = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
24 Allow_osNpcSit = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
25 Allow_osNpcStand = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
26 Allow_osNpcStopAnimation = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
27 Allow_osParcelJoin = ESTATE_OWNER, ESTATE_MANAGER
28 Allow_osParcelSubdivide = ESTATE_OWNER, ESTATE_MANAGER
29 Allow_osRegionRestart = ESTATE_OWNER, ESTATE_MANAGER
30 Allow_osSetParcelDetails = ESTATE_OWNER, ESTATE_MANAGER
31 Allow_osSetPrimitiveParams = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
32 Allow_osSetProjectionParams = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
33 Allow_osSetRegionWaterHeight = ESTATE_OWNER, ESTATE_MANAGER
34 Allow_osSetStateEvents = ESTATE_OWNER, ESTATE_MANAGER
35 Allow_osSetTerrainHeight = ESTATE_OWNER, ESTATE_MANAGER
36 ;;
37 ;; *** Threat-Level=VeryHigh
38 Allow_osAvatarPlayAnimation = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
39 Allow_osAvatarStopAnimation = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
40 Allow_osGetNotecard = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
41 Allow_osGetNotecardLine = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
42 Allow_osGetNumberOfNotecardLines = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
43 Allow_osRegionNotice = ESTATE_OWNER, ESTATE_MANAGER
44 Allow_osAgentSaveAppearance = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
45 Allow_osSetRot = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER, PARCEL_GROUP_MEMBER
46 ;;
47 ;; *** Threat-Level=Severe
48 Allow_osConsoleCommand = ESTATE_OWNER
49 Allow_osKickAvatar = ESTATE_OWNER, ESTATE_MANAGER
50 Allow_osTeleportAgent = ESTATE_OWNER, ESTATE_MANAGER, PARCEL_OWNER

Damit das funktioniert, muss der ThreadLevel auf VeryHigh gestellt werden. Grund hierfür ist, dass im obrigen Beispiel die dringend benötigten Funktionen osGetNoteCard, osGetNoteCardLine, etc. in der Sektion ‚VeryHigh‘ angesiedelt sind. Mann kann die Benötigten Funktionen natürlich auch in den Level High anlegen. Darauf achten, dass Funktionen maximal für die Gruppenmitglieder (PARCEL_GROUP_MEMBER) freigegeben sind.

Beispielvideo