In response to Morialis
Mm, no, that still gives me error: expected end of statement. Which is really weird. Thanks for fixing the indenting though.

Gah, this is driving me up the wall. XD

I think part of it is that I don't have anything to handle what happens if they select a direction that doesn't exit, but if it's calling ExitList and ExitList only has the available exits and cancel, then that shouldn't matter...
In response to Axel Wildfire
I think I found it, try changing this:

if(Decision == east) client.Move(locate(A.east))
else if(Decision == west) client.Move(locate(A.west))
else if(Decision == north) client.Move(locate(A.north))
else if(Decision == south) client.Move(locate(A.south))


to this:

if(Decision == "east") client.Move(locate(A.east))
else if(Decision == "west") client.Move(locate(A.west))
else if(Decision == "north") client.Move(locate(A.north))
else if(Decision == "south") client.Move(locate(A.south))


it was comparing to your east/west/north/south variables, not the word, and since the list was text, you want to compare it to text
In response to Morialis
Fixed, but it aggravatingly gives me the same error. I believe I have misused the list function in the first place, which would be screwing up...
Then again, I am pretty much jumping for a rope over tar in the dark, so this is hardly surprising. XD
In response to Axel Wildfire
I think the problem might be with using A.south, A.east etc. What exactly are you trying to do there?
In response to Axel Wildfire
If you just want to know the location, try using something like get_step(usr,EAST) instead of A.east.
In response to Morialis
The idea is meant to be this:

- move verb is used.
- Verb calls the Move proc.
- Move proc calls ExitList for the room it's in, gives the popupbox with options.
- On the user selecting an option, it moves their attached mob to the area they selected.

But it's just not working... xD I'm sure I'm doing it wrong. (well... obviously...)

- I should just add, this is meant to be MUD-style, so it's all text and things. Which is why I want a verb for movement instead of just overriding the standard movement procs and doing it that way, because accidentally hitting an arrow key in the middle of an RP and moving out of the room is extremely annoying. It doesn't happen often, but it happens often enough to make me put in a safeguard.
In response to Axel Wildfire
I think this might be the really easy way you want to try: step(usr,WEST)
In response to Morialis
In place of client.Move?
In response to Axel Wildfire
not sure about client, I never use that =p, maybe usr.step(stuff, instead of client
In response to Morialis
XD well, being totally new to this, I'll take whatever I can get... speaking of which.

If usr.loc is already defined, shouldn't it be possible to use

usr.loc(locate(A.East))


to move to an eastward room?
In response to Axel Wildfire
oops my bad, you wont need usr.step, just step (it takes usr as the first parameter)
In response to Axel Wildfire
I'm sure it's possible in some way, but using this would be much easier:

else if(Decision == west) step(usr,WEST)
//etc
In response to Morialis
I'm pretty sure this has to do with my else if's, because it's giving me the same error no matter what...
In response to Axel Wildfire
thats it, im putting it in my code and getting it compiling lol, ive spent too much time on this =p
In response to Morialis
XD fair enough.
In response to Axel Wildfire
Got it finally, there was another indentation problem

proc
Move
var/area/A = usr.loc
var/list/ExitList
var/Decision = input("Which direction?")as null|anything in ExitList
if(Decision == "east") step(usr,EAST)
else if(Decision == "west") step(usr,WEST)
else if(Decision == "north") step(usr,NORTH)
else if(Decision == "south") step(usr,SOUTH)
In response to Morialis
Awesome. Now I have ten or fifteen errors... but not that one, so it's all good. XD
In response to Axel Wildfire
lol, good luck again
In response to Morialis
OKAY.

world
New() //overrides the world's New() proc
for (var/Atype in typesof(/area)) //loops through area prototypes
var/area/A = new Atype //creates a new instance of each prototype
A.tag = A.name //makes it's tag the same as it's name

..() //calls the parent


area
var //declare new area variables
North
South
East
West
Courtyard
desc = "Hushed noises from the lounge drift out into this pleasant-smelling courtyard."
East = "Lounge"
var/list/ExitList = list("East")as null|anything in ExitList

Kitchen
desc = "A refrigerator is here, stocked with snacks and drinks for people who help newbies with their code."
South = "Lounge"

Lounge //create a new area prototype
desc = "It is very comfy here. The walls are edged in bean bag chairs."
North = "Kitchen"
West = "Courtyard"

obj
Certificate
desc = "The certificate reads, 'I hate byond.'"


mob
Login() //overrides the mob's login proc
Move(locate("Lounge")) //finds Lounge and puts the mobs there
..() //calls the parent
new /obj/Certificate (usr)
Move(area/A) //overrides the mob's Move() proc
..() //calls the parent
src <<"<b>[A.name]</b>"
src << A.desc //displays room description
src << "People here: \..."
for (var/mob/M in A) //loops through mobs in room, displaying each
if (M == src) src << "You \..."
else src << "[M] \..."
src << "\nStuff here: \..."
for (var/obj/O in A) src << "[O] \..."
src << "\nExits: \..." //displays any exits
if (A.North) src << "North \..."
if (A.South) src << "South \..."
if (A.East) src << "East \..."
if (A.West) src << "West \..."
src << ""

verb
say(msg as text) //what the usr says is passed into 'msg' as text
Msg23("You say, '[msg]'", "[usr] says, '[msg]'") //gives our task to Msg23

emote(msg as text) //what the user emotes is passed into 'msg' as text
world << "[usr] [msg]" //everyone sees this

wave(var/mob/M as mob in oview()) //waves to a mob in oview()
Msg223("You wave to [M].",target = M,"[usr] waves to you.","[usr] waves to [M].")

drop(var/obj/O in usr.contents) //drops an item at your position
Msg23("You drop [O].","[usr] drops [O].")
O.loc = usr.loc

get(var/obj/O as obj in oview()) //picks up an item at your position
Msg23("You get [O].","[usr] gets [O].")
O.loc = usr.contents

inventory() //checks your inventory
usr << "You are carrying:"
for (var/obj/O in usr.contents) usr << O

look(var/obj/O in view()) //examines an object in view
usr << "You look at [O]."
usr << O.desc

move
Move




proc
Msg23(second,third) //declares a new proc that takes two arguments.
usr << second //outputs the first to the usr
oview() << third //outputs the second to oview()
Msg223(second1,target,second2,third)
usr << second1 //outputs the first text string to the usr
target << second2 //outputs second text string to verb target
for (var/mob/M in oview()) //outputs third to mobs in view who are neither
if (M != target) M << third
Move
var/area/A = usr.loc
var/list/ExitList
var/Decision = input("Which direction?")as null|anything in ExitList
if(Decision == East) usr.loc = A.East
else if(Decision == West) usr.loc = A.West
else if(Decision == North) usr.loc = A.North
else if(Decision == South) usr.loc = A.South

client
North() //overrides the client's North() proc
var/area/A = usr.loc //creates a variable to hold the user's loc position
if (A.North) usr.Move(locate(A.North)) //moves player North if possible
else usr << "You can't go there." //otherwise not
South()
var/area/A = usr.loc
if (A.South) usr.Move(locate(A.South))
else usr << "You can't go there."
East()
var/area/A = usr.loc
if (A.East) usr.Move(locate(A.East))
else usr << "You can't go there."
West()
var/area/A = usr.loc
if (A.West) usr.Move(locate(A.West))
else usr << "You can't go there."


[/wall]

Now I'm being given this:

testmud.dm:83:error:move :invalid proc definition
testmud.dm:98:error:Move :invalid proc definition
testmud.dm:19:error:ExitList: compile failed (possible infinite cross-reference loop)

These lines are the verb move, the proc Move, and my ExitList for the Courtyard.

Help please. >w<;;;
In response to Axel Wildfire
before we get started, i think we should make a new threat, this one is becoming a wall >_>
Page: 1 2 3