ID:260552
 
It works like see_invisible, but, you ONLY see mobs on invisibility channel 0 and the channel the var is set to

it works like this


with see_invisible, it's like
IF mob's invisibility level is lower or equal to the other mob's see_invisible level, display it on the screen, etc

HOWEVER, with see_invisible_channel, it's like
IF mob's invisibility level is EQUAL to the other mob's see_invisible_channel level, or if the mob's invisibility level is 0, display it on the screen, etc

This could be used for a variety of features, like having 80+ multiplayer deathmatches occuring on the same map, but you only play with those in your gameroom, etc

Get what I mean? It would be used for a variety of things
While there are ways to do this on your own it would be a lot simpler to have a see_invisible_channel variable.

Also, this isn't 4chan. You don't need to post tl;dr.
In response to SuperAntx
yeah, what's the ''hard'' way to do it on your own?
In response to Mista-mage123
I've also wanted something like this. The "hard" way would to put everyone on different maps that look the same, use images, HUD, ect...
Although this does seem like a decent suggestion, I'd have to say that this would be redundant. A var to control the behavior of see_invisible, however, would be useful.
In response to Zaltron
yeah
This could be very useful, but I'd suggest making it more powerful by using bit flags.

//Mobs can only see others on the same team, except for admins who are invisible to normal players, but can see everyone.
#define CHANNEL_A 1
#define CHANNEL_B 2
#define ADMIN 4
/mob/teamA
invisible_channel=CHANNEL_A
see_invisible_channel=CHANNEL_A
/mob/teamB
invisible_channel=CHANNEL_B
see_invisible_channel=CHANNEL_B
/mob/admin
invisible_channel=ADMIN
see_invisible_channel=CHANNEL_A|CHANNEL_B|ADMIN


If one mob's see_invisible_channel and an atom's invisible_channel overlap (see_invisible_channel & invisible_channel > 0), then the atom is visible to the mob.

This wouldn't make your idea of having multiple games going on at once on the same map any easier, but I did have a game I wasn't able to (easily) make because BYOND doesn't have this functionality.
In response to Nickr5
Nickr5 wrote:
but I did have a game I wasn't able to make because BYOND doesn't have this functionality.

Not out-of-the-box, no, but BYOND does support images which you can use to basically perform the same thing.
In response to Android Data
Basically? Yes. In actuality? No. Not really.
In response to Kaioken
Kaioken wrote:
In actuality? No. Not really.

All you need to do is use the image and keep the icon set to null. Then you simply add/remove the image from a clients' images list if the object is visible or not.

So yes, it's possible -- just not as easy as suggested above.
In response to Android Data
Except, it's quite nothing like using something built-in like see_invisible, and is a waste of imagse.
In response to Kaioken
I also find it to be a waste of a limited resource to use images to display atom graphics that already exist. Meanwhile, developers would have to use more resources keep track of things.

That said, I don't like the channel idea because it limits the combinations of views.

It has been suggested before, but I'd prefer that atoms had built in procs which would be referenced internally when calculating what can be sensed. By default, they would obey the normal engine rules so backwards compatibility would be insured. Developers could then override them like any other atom proc.

Unfortunately, I think that this sort of thing is written in a manner that only Dan fully understands. It would take Lummox JR a while to implement it and he probably has other priorities.
In response to Android Data
Android Data wrote:
Kaioken wrote:
In actuality? No. Not really.

All you need to do is use the image and keep the icon set to null. Then you simply add/remove the image from a clients' images list if the object is visible or not.

So yes, it's possible -- just not as easy as suggested above.

1. It's hell to do, but it's easy to talk about
2. It's even more hell trying to do animations
3. It's a WASTE of Resource space

See_Invisible_Channel would do a great part in allowing more types of games to hit BYOND
In response to Mista-mage123
Additionally, and the point I was getting at with 'Data, it's only possible to do it in the 'basic' sense, just like was actually said. But doing it properly so you can do 'everything' like see_invisible is already integrated to the system is either (probably) impossible feasibly, or if it is then it's still bad because it'd be very very messy.
Eg (like you partly said): every time you make a change to the icon or other visual var you need to repeatedly make a new image, and reoutput it.
This also means, in the basic sense (:P):
-you can't use overlays or underlays
-if you really want to you'd be required to maintain a list of them so they can be reused/rebuilt
-you can't use flick()
-you can't do with just changing the object's icon_state or icon as would be normal <small>(and doing things abnormally is less robust by definition, although by a varying degree depending of course)</small>
-you can't [insert more things here?]
-you can't not hit the images limit (ok, you can, but it just makes it harder)

So, that is just really not a very viable implementation. Not for me, at least, anyway.
In response to Kaioken
Also, built-in procs that rely on sight (such as view() and viewers()) wouldn't work properly.
In response to Nickr5
Also true, and an important point.
In response to Kaioken
Kaioken wrote:
Except, it's quite nothing like using something built-in like see_invisible, and is a waste of imagse.

You can make your own see_invisible as suggested above using images, so this can be used to accomplish this currently, at least until it's a built-in feature.
In response to Mista-mage123
i want tom to see this thread already
In response to Mista-mage123
Likely, the BYOND Staff has already seen it, or otherwise seen this feature request before (it was requested multiple times before). It may be on the List, or just rejected.
In response to Nickr5
Nickr5 wrote:
Also, built-in procs that rely on sight (such as view() and viewers()) wouldn't work properly.

A simple fix to that, though would be a third argument for those procs that defaults to zero (all channels) for determining which channel it would see.

As has been mentioned also, it would probably be better functionality to see multiple channels, in which case bit flags could be used which would only allow 16 channels, or a list of channel numbers, (eg.list(1,2,3)) text, (eg."1,2,3") or params that are the same as a list modified with list2params() (e.g. "1;2;3"). The list2params() idea is probably the best one, since params2list could be used for easier functionality in checking which channels a given player can see.
This is just something I'm pointing out if this does get implemented.
Of course, another fix to the problem posted here would just be to have multiple servers hosting it.
Page: 1 2