Don't idlepark from certain special public locations

This commit is contained in:
Condorra 2024-03-11 21:09:17 +11:00
parent f7282b07d3
commit 8a9713b5e1
5 changed files with 31 additions and 2 deletions

View File

@ -341,6 +341,7 @@ pub enum ItemFlag {
DontListInLook, DontListInLook,
AllowShare, AllowShare,
Invincible, Invincible,
NoIdlePark,
} }
#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] #[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]

View File

@ -26,7 +26,9 @@ impl TaskHandler for IdleparkTaskHandler {
{ {
if let Some((loc_type, loc_code)) = player_item.location.split_once("/") { if let Some((loc_type, loc_code)) = player_item.location.split_once("/") {
if let Some(loc) = ctx.trans.find_item_by_type_code(loc_type, loc_code).await? { if let Some(loc) = ctx.trans.find_item_by_type_code(loc_type, loc_code).await? {
if !loc.flags.contains(&ItemFlag::PrivatePlace) { if !loc.flags.contains(&ItemFlag::PrivatePlace)
&& !loc.flags.contains(&ItemFlag::NoIdlePark)
{
let mut player_item = (*player_item).clone(); let mut player_item = (*player_item).clone();
broadcast_to_room(&ctx.trans, &player_item.location, None, broadcast_to_room(&ctx.trans, &player_item.location, None,
&format!( &format!(

View File

@ -28,7 +28,7 @@ pub fn room_list() -> Vec<Room> {
exit_type: ExitType::Blocked(Box::new(npc::statbot::ChoiceRoomBlocker)), exit_type: ExitType::Blocked(Box::new(npc::statbot::ChoiceRoomBlocker)),
..Default::default() ..Default::default()
}), }),
item_flags: vec![ItemFlag::NoUrgesHere], item_flags: vec![ItemFlag::NoUrgesHere, ItemFlag::NoIdlePark],
should_caption: true, should_caption: true,
..Default::default() ..Default::default()
}, },
@ -68,6 +68,7 @@ pub fn room_list() -> Vec<Room> {
..Default::default() ..Default::default()
}), }),
should_caption: true, should_caption: true,
item_flags: vec![ItemFlag::NoIdlePark, ItemFlag::NoSay, ItemFlag::NoSeeContents],
..Default::default() ..Default::default()
}, },
Room { Room {

View File

@ -18,6 +18,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding1 code: holding1
name: 'Holding Pen #1' name: 'Holding Pen #1'
@ -28,6 +30,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding2 code: holding2
name: 'Holding Pen #2' name: 'Holding Pen #2'
@ -38,6 +42,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding3 code: holding3
name: 'Holding Pen #3' name: 'Holding Pen #3'
@ -48,6 +54,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding4 code: holding4
name: 'Holding Pen #4' name: 'Holding Pen #4'
@ -58,6 +66,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding5 code: holding5
name: 'Holding Pen #5' name: 'Holding Pen #5'
@ -68,6 +78,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding6 code: holding6
name: 'Holding Pen #6' name: 'Holding Pen #6'
@ -78,6 +90,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding7 code: holding7
name: 'Holding Pen #7' name: 'Holding Pen #7'
@ -88,6 +102,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding8 code: holding8
name: 'Holding Pen #8' name: 'Holding Pen #8'
@ -98,6 +114,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holding9 code: holding9
name: 'Holding Pen #9' name: 'Holding Pen #9'
@ -108,6 +126,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holdinga code: holdinga
name: Holding Pen A name: Holding Pen A
@ -118,6 +138,8 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark
- zone: special - zone: special
code: holdingb code: holdingb
name: Holding Pen B name: Holding Pen B
@ -128,3 +150,5 @@
z: -1 z: -1
description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]' description: 'The inside of a small pen or cage, with thick steel bars, suitable for holding an animal - or a person - securely, with no chance of escape. It is dimly lit and smells like urine, and is very cramped and indignifying. It looks like the only way out would be with the help of whoever locked you in here. [OOC: consider emailing staff@blastmud.org to discuss your situation]'
exits: [] exits: []
flags:
- !NoIdlePark

View File

@ -44,6 +44,7 @@ CREATE TABLE users (
); );
CREATE INDEX user_by_listener ON users(current_listener); CREATE INDEX user_by_listener ON users(current_listener);
CREATE INDEX user_by_session ON users(current_session); CREATE INDEX user_by_session ON users(current_session);
CREATE INDEX user_by_idlepark ON users(idle_park_time);
CREATE UNLOGGED TABLE sendqueue ( CREATE UNLOGGED TABLE sendqueue (
item BIGSERIAL NOT NULL PRIMARY KEY, item BIGSERIAL NOT NULL PRIMARY KEY,