secondlife / jira-archive

2 stars 0 forks source link

[BUG-40984] Feature Request: llFly() - A function to put someone into flying status or to take them out of flying status. #12581

Open sl-service-account opened 7 years ago

sl-service-account commented 7 years ago

Information

I recently made an experience based teleport app and an experience based scripted sit/unsit app that both have the option of putting the user in the air above the ground or at high altitude. These devices need a way of putting the user into fly mode so they don't fall down to ground.

Flying has it's own server status trackable by llGetAgentInfo() & AGENT_FLYING.

Flying also exercises animation overrides.

Currently the only way to turn on flying is with the Fly Mode button in the viewer.

This request is for the following experience based function:

integer llFly(key id, integer status);

id - agent to turn on/off flying status for

status - 1 to put agent into flying status, 0 to turn off flying status for the target

This function returns a 1 if successful or one of the following errors if not successful (Modeled after llSitOnLink()):

Constant Value Description
- - - -
FLY_NOT_EXPERIENCE -1 The script is not running as part of an experience with a valid experience key.
FLY_NO_EXPERIENCE_PERMISSION -2 The agent has not granted permission.
FLY_BLOCKED -3 This is only returned when trying to make an agent fly over land that has flying disabled at the region/parcel level. The target can still be taken out of flying status.
FLY_INVALID_AGENT -4 Unable to find specified agent.



Benefits:

Teleport/unsit apps won't have to allow users to fall to ground if needed.
Turning off flying can be an alternative deterrence than teleporting if cheating is suspected or it can simply be used to prepare a user for a new portion of a game if flying was used/allowed in a previous section.
Flying portions of games won't have to ask for you to manually go into fly mode.
Since flying exercises animation overrides we won't have any rag doll or falling effects with movement due to someone not being in fly mode.

# Additional Info:
We've been pretty single minded with experiences lately, focusing solely on ground based environments. With this feature we could create and cater to flying or even swimming or outer space portions of games especially if obstacles are involved as it is all too easy to kick an agent out of flying mode if their lower bounding box collides with objects or land.

This means we can make flying/swimming/diving/space, bird/fish, angel, superman/aquaman/alien, etc. type games with no conscious user intervention of having to manually turn on flying when needed.

Thanks in advance for any consideration.|

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-40984 | | Summary | Feature Request: llFly() - A function to put someone into flying status or to take them out of flying status. | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Lucia Nightfire (lucia.nightfire) | | Created at | 2016-12-02T03:52:47Z | | Updated at | 2017-02-23T12:38:58Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2017-02-23T06:38:58.144-0600', 'How would you like the feature to work?': "h1. Information\r\n\r\nI recently made an experience based teleport app and an experience based scripted sit/unsit app that both have the option of putting the user in the air above the ground or at high altitude.\r\nThese devices need a way of putting the user into fly mode so they don't fall down to ground.\r\n\r\nFlying has it's own server status trackable by llGetAgentInfo() & AGENT_FLYING.\r\n\r\nFlying also exercises animation overrides.\r\n\r\nThis request is for the following experience based function:\r\n\r\ninteger llFly(key id, integer status);\r\n\r\nid - agent to turn on/off flying status for\r\n\r\nstatus - 1 to put agent into flying status, 0 to turn off flying status for the target\r\n\r\nThis function returns a 1 if successful or one of the following errors if not successful (Modeled after llSitOnLink()):\r\n\r\n||Constant||Value||Description|\r\n|FLY_NOT_EXPERIENCE|-1|The script is not running as part of an experience with a valid experience key.|\r\n|FLY_NO_EXPERIENCE_PERMISSION|-2|The agent has not granted permission.|\r\n|FLY_BLOCKED|-3|This is only returned when trying to make an agent fly over land that has flying disabled at the region/parcel level. The target can still be taken out of flying status.|\r\n|FLY_INVALID_AGENT|-4|Unable to find specified agent.|\r\n\r\nBenefits:\r\n\r\nTeleport/unsit apps won't have to allow users to fall to ground if needed.\r\nTurning off flying can be an alternative deterrence than teleporting if cheating is suspected or it can be simply be used to prepare a user for a new portion of a game if flying was used/allowed in a previous section.\r\nFlying portions of games won't have to ask for you to manually go into fly mode.\r\nSince flying exercises animation overrides we won't have any rag doll effects with movement due to someone not being in fly mode.\r\n\r\nAdditional Info:\r\nWe've been pretty single minded with experiences lately, focusing solely on ground based environments. With this feature we could create and cater to flying or even swimming portions of experience based games especially if obstacles are involved as it is all too easy to kick an agent out of flying mode if their lower bounding box collides with objects or land.\r\n\r\nThis means we can make flying/swimming/diving, bird/fish, angel, superman/aquaman, etc. type games with no conscious user intervention of having to manually turn on flying when needed.\r\n\r\nThanks in advance for any consideration.", 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': '?', } ```
sl-service-account commented 7 years ago

Qie Niangao commented at 2017-02-23T12:38:58Z

I'll second the assignment of "Major" to this, and add my own plea that this be done.

Besides the specific need to set avatars into flight, it's needed in order to restore them to pre-existing flight after llSitOnLink() has been applied to them temporarily and they've been unseated. There needs to be some option better than letting them plummet.