ID:179504
 
I can't seem to be able to load my character.
There's a black screen each time I try to load him (I waited a couple of minutes in case it was loading, but it wasn't).
There are no errors, so it's hard to pinpoint the problem.

The code compiles well, I have included the lib and I have
used Deadron Character saving Demo as an example for
my login code.
Any ideas ?
I'll try looking at the lib more carefully.

Thx.
I have a prob too
        sample_report()
// if(usr.Inbattle == 1)
usr.x = usr.lastx
usr.y = usr.lasty
usr.z = usr.lastz


It should move the user, but it doesnt, and a verb that has the code moves the user

What am I doing wrong
In response to Pillsverry
Pillsverry wrote:
I have a prob too
>       sample_report()
> // if(usr.Inbattle == 1)
> usr.x = usr.lastx
> usr.y = usr.lasty
> usr.z = usr.lastz
>


You need to use locate() for this, as the sample code shows.
Cravens wrote:
I can't seem to be able to load my character.
There's a black screen each time I try to load him (I waited a couple of minutes in case it was loading, but it wasn't).
There are no errors, so it's hard to pinpoint the problem.

Are you ever putting the mob on the map?

Overall this problem seems to bite a lot of people, so I think tonight I'll update the CharacterHandling library to put the character back in their last location by default.
In response to Deadron
Are you ever putting the mob on the map?

Yes, I can create a character, with a name and all.
Then when I logout and log back in, I pick that same character but there's just a black screen.
I can see the mob for a split second on the black screen, but then he's gone. It doesn't log me out and there are no errors.
In response to Cravens
Cravens wrote:
Are you ever putting the mob on the map?

Yes, I can create a character, with a name and all.
Then when I logout and log back in, I pick that same character but there's just a black screen.
I can see the mob for a split second on the black screen, but then he's gone. It doesn't log me out and there are no errors.

Are you using the CharacterSaving demo that saves their location and restores it?
In response to Deadron
Are you using the CharacterSaving demo that saves their location and restores it?

Yes, like I said I used it to help me make a login code.
I didn't change much, except I removed the sample_report().
In response to Cravens
Just to be absolutely sure, did you include the Write() and Read() proc definitions included in the demo? If not, try adding those. They're what save and load character info such as last location, etc
In response to sapphiremagus
sapphiremagus wrote:
Just to be absolutely sure, did you include the Write() and Read() proc definitions included in the demo? If not, try adding those. They're what save and load character info such as last location, etc

'cept now he can just let the library handle it directly, which it now does by default.
In response to Deadron
I got it, i had to do it under Read(savefile/F), but i got it

now all i gotta do is work out the few probs with the Multi-Tiled sys(Vortezz's) and i can put my game on the HUB
In response to Deadron
Ok, I removed the write() and read() from my code since
you put it by default on the lib.
Now it loads the mob (the second time I play) on the black screen.
I can move him except there isn't anything around him.
Any ideas ?

Thx.
In response to Cravens
Cravens wrote:
Ok, I removed the write() and read() from my code since
you put it by default on the lib.
Now it loads the mob (the second time I play) on the black screen.
I can move him except there isn't anything around him.
Any ideas ?

Is it possible he's hitting a dense object when the game tries to move him to the map? The library doesn't do anything to deal with that.

I would override Move() to check for failures:

mob
Move()
var/result = ..()
if (!result)
world << "I bounced off something!"
return result
In response to Deadron
Is it possible he's hitting a dense object when the game tries to move him to the map? The library doesn't do anything to deal with that.

I did get the "I bounce off something!" msg...

I didn't know dense turf could block the mob.
I thought it would just put him there...

Should I change something in the lib ?

Thx for your help.
In response to Cravens
Cravens wrote:
Is it possible he's hitting a dense object when the game tries to move him to the map? The library doesn't do anything to deal with that.

I did get the "I bounce off something!" msg...

I didn't know dense turf could block the mob.
I thought it would just put him there...

Should I change something in the lib ?

Um lemme add something I should have yesterday: A proc that does the initial placement that you can override in case it fails. This would actually be a nice thing to have in general anyway.

It would just put him there if the library set the loc instead of using Move(), but it doesn't because people may have Move() overridden for special stuff, like multi-turf mobs.
In response to Deadron
Since I now know that the problem was the Move(), I
want to make a locate() each time the character loads.
I turned off the location saving, so where should I put
the locate() ? In the lib or in my code file ?

I also want to add a var where each time the mob goes
to a new place, he gets located there instead.
Something like this:

if(usr.place1 >= 1)
usr.Move(locate(/area/place1))
if(usr.place2 >= 1)
usr.Move(locate(/area/place2))

Any ideas ?

Thx.
In response to Cravens
Cravens wrote:
Since I now know that the problem was the Move(), I
want to make a locate() each time the character loads.
I turned off the location saving, so where should I put
the locate() ? In the lib or in my code file ?

Don't touch the library...any changes you make will be blown away the next time I update it (probably tonight).

Put it in your own code...you can override a library function if you want...like:

client
base_LoadMob(char_name)
var/mob/the_mob = ..()
if (the_mob)
// Your locate code


Probably tonight I will add something like base_PlaceMob() which you can override for locate code.