ID:140027
 
Code:
mob
player
proc
test()
world << "1"

verb
banana()
test()
world << "2"


Problem description:
The verb silently crashes after outputting "1". The environment is still running, ruling out an infinite loop, but I see no reason why this is in any way a problem?

Is there perhaps something that makes a verb stop after calling a proc? :/
Not really sure what you mean. I tested it and it outputted both 1 and 2.
In response to Ulterior Motives (#1)
I mean exactly what I'm saying. I suppose it may be the way in which I'm assigning the player, but I don't see why that would affect how the code is to be ran like this. :/
In response to F0lak (#2)
Uhhh... Yeah, apparently it was the way I was assigning the player that was crashing the verb/proc. Can someone please point out how/why this is incorrect, and what exactly led to the crash?

mob
Login()
..()
var/new_player = new/mob/player(loc)
client.mob = new_player


Is it a case of a misplaced ..() perhaps?
In response to F0lak (#3)
I tested that as well and the verb still outputted 1 and 2. However if you are putting ..() in player login or not calling player login at all this is going to continue to loop through over and over and this verb will only output 1.
In response to F0lak (#3)
F0lak wrote:
Uhhh... Yeah, apparently it was the way I was assigning the player that was crashing the verb/proc. Can someone please point out how/why this is incorrect, and what exactly led to the crash?

> mob
> Login()
> ..()
> var/new_player = new/mob/player(loc)
> client.mob = new_player
>


Is it a case of a misplaced ..() perhaps?

Ummm... afaik, the Dot-Dot procedure goes after the code, not before, like:
<dm>
mob
Login()
var/new_player = new/mob/player(loc)
client.mob = new_player
<dm>

Also, if that code is just to assign a new player to the mob called 'player' there is a world datum coding that can do that XD

<dm>
world/mob = mob/player
<dm>

And as you can see, it is alot simpler XD
In response to F0lak (#3)
Changing the client's mob calls Login() to the new mob. This then causes a new mob to be created and assigned the client, which calls Login again... It's an infinite loop. That, at the very least, is what's wrong with this code.

The only thing ..() is doing is running the default Login() procedure, which changes your initial mob's location to 1,1,1. It's not the problem here.
In response to Devourer Of Souls (#6)
Thanks for the help, all, but I figured it out.

-F0lak.