Sign in to follow this  
rons0n

We want our character blind!

Recommended Posts

rons0n    124

Is it possible to not make our character see the map? As in, no matter how many times he looks at the map he'll forever see nothing but his Map icon. (Maybe not even his map icon)

 

Or alternatively, just disable him from using the map completely. Though we much prefer the 1st option.

 

Share this post


Link to post
Share on other sites
rezecib    3152

@rons0n

TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(true)

You have to make sure this runs on the client, though, so finding the right hook to run the code may be a challenge. Once you find the right place for it to run, you can check that you're on the client with this:

if ThePlayer.prefab == "mycharacterwhocantseethemap" then    --clear minimapend

As for the right place to run... maybe this?

inst:ListenForEvent("setowner", fn)

So to put that all together, in the character's common_postinit, put this:

inst:ListenForEvent("setowner", function()    if ThePlayer.prefab == inst.prefab then        TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(true)    endend)

You might also need a way to restore this behavior on the ghost -> living character transition, but I think it will get preserved without a special case for that.

Share this post


Link to post
Share on other sites
rons0n    124

@rezecib, Everything is going well! Well, maybe a bit too well.

 

So during some quick testing I noticed when I entered in console:

local p = ThePlayer DeleteUserSession(p) p:Remove()

Then chose a different character, my Character's No-map awareness perk is still in place. As in, no matter how many times I changed characters it still has his character perk.

 

Now I thought it was because i didn't replace

  if ThePlayer.prefab == inst.prefab thenwith  if ThePlayer.prefab == "thecharacter" then

but even doing so, other characters still gain his no map awareness perk. I wonder if there's a way to bypass this?

Share this post


Link to post
Share on other sites
Kzisor    1058

@rons0n, did you try adding an else statement and setting it to false?

if ThePlayer.prefab == inst.prefab then   TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(true)else   TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(false)end 

Share this post


Link to post
Share on other sites
rezecib    3152

@Kzisor, Or a little bit more easily written as:

TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(ThePlayer.prefab == inst.prefab)

Edit: Also, @rons0n, there's a command for switching characters now, c_despawn(ThePlayer)

Edited by rezecib

Share this post


Link to post
Share on other sites
Kzisor    1058

@Kzisor, Or a little bit more easily written as:

TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(ThePlayer.prefab == inst.prefab)

Edit: Also, @rons0n, there's a command for switching characters now, c_despawn(ThePlayer)

 

rons0n isn't that great with code, so I was using code which might be a little easier to understand when they look back at it in the future. I've been helping them with their mods a lot so I want to make sure they understand how it works. I think using your code would be best rezecib as it's the most optimized and it's understandable now as I've posted the basics of how it works, that is it works like the if-else statement without the if-else statement being there.

Share this post


Link to post
Share on other sites
Kzisor    1058

@rons0n, is it affecting all players on the server or just you when you change characters?

 

If it's affecting all players try:

if not TheWorld.ismastersim then    TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(ThePlayer.prefab == inst.prefab)end

It might be the case of how Lights work, if on non-dedicated servers the host has a light source equipped to their character it affects all players on the server.

Edited by Kzisor

Share this post


Link to post
Share on other sites
DarkXero    2886

His TheWorld must keep existing when he changes characters.

 

When you pick that character, TheWorld gets told to not update.

When you don't pick it, TheWorld gets told nothing.

Not picking that character does not equate to setting revealed areas into false.

Therefore, the perk persists.

TheWorld = GLOBAL.TheWorldAddPlayerPostInit(function(inst)   TheWorld.minimap.MiniMap:ContinuouslyClearRevealedAreas(inst.prefab == "thecharacter")end)

Try this.

Share this post


Link to post
Share on other sites
rons0n    124

Yes! Everything is now working as expected! Appreciate all the help guys! Slamming that 'like' button like fist of the north star

Share this post


Link to post
Share on other sites
kormann    3

Thanks @rezecib!

This character looks pretty good. It's like an oriental swordsman version of Zorro but blind? Is that why it's called ZORO? Hehe.

I might try it. Well done @rons0n,! :-)

Edited by kormann

Share this post


Link to post
Share on other sites
kormann    3

Oh... this anime/manga, I never watched/read it, just heard from my friends. Maybe the One Piece creator did that on purpose then =P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this