ID:149230
 
Hello. I was trying to get this code to work, but I seem to be having some troubles. I want it so when they log out, they drop the certain items they have in their 'Dragonballs' stat panel. I'll post my mob/Logout() code.


mob/var/list/DBalls = list()

mob/Logout()
if(istype(src,/mob/player))
world << "[usr.name] has escaped into the real world."
else
..()
if(src.dbone == 1)
new /obj/dragonballs/dragonballone(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballoneitem)
if(src.dbtwo == 1)
new /obj/dragonballs/dragonballtwo(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballtwoitem)
if(src.dbthree == 1)
new /obj/dragonballs/dragonballthree(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballthreeitem)
if(src.dbfour == 1)
new /obj/dragonballs/dragonballfour(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfouritem)
if(src.dbfive == 1)
new /obj/dragonballs/dragonballfive(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfiveitem)
if(src.dbsix == 1)
new /obj/dragonballs/dragonballsix(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsixitem)
if(src.dbseven == 1)
new /obj/dragonballs/dragonballseven(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsevenitem)


And when they get a Dragonball:

obj
dragonballs
icon = 'dragonballs.dmi'
dragonballone
icon_state = "1"
name = "One Star Dragonball"
dragonballs = 1
Click()
usr << "You got the one-star dragonball!"
usr.dragonballs += 1
usr.dbone = 1
usr.DBalls.Add(new/obj/dragonballs/dragonballoneitem)
src.owner = usr.name
del(src)


Got any ideas of how to solve this?


mob/Logout()
if(istype(usr,/mob/player))
world << "[usr.name] has escaped into the real world."
if(usr.dbone == 1)
new /obj/dragonballs/dragonballone(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballoneitem)
if(usr.dbtwo == 1)
new /obj/dragonballs/dragonballtwo(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballtwoitem)
if(usr.dbthree == 1)
new /obj/dragonballs/dragonballthree(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballthreeitem)
if(usr.dbfour == 1)
new /obj/dragonballs/dragonballfour(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfouritem)
if(usr.dbfive == 1)
new /obj/dragonballs/dragonballfive(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfiveitem)
if(usr.dbsix == 1)
new /obj/dragonballs/dragonballsix(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsixitem)
if(usr.dbseven == 1)
new /obj/dragonballs/dragonballseven(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsevenitem)
del src

try this, if it dont work get back to me

RaeKwon
Actually try this...

mob/Logout()
if(istype(usr,/mob/player))
world << "[usr.name] has escaped into the real world."
if(usr.dbone == 1)
new /obj/dragonballs/dragonballone(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballoneitem)
if(usr.dbtwo == 1)
new /obj/dragonballs/dragonballtwo(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballtwoitem)
if(usr.dbthree == 1)
new /obj/dragonballs/dragonballthree(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballthreeitem)
if(usr.dbfour == 1)
new /obj/dragonballs/dragonballfour(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfouritem)
if(usr.dbfive == 1)
new /obj/dragonballs/dragonballfive(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballfiveitem)
if(usr.dbsix == 1)
new /obj/dragonballs/dragonballsix(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsixitem)
if(usr.dbseven == 1)
new /obj/dragonballs/dragonballseven(locate(usr.x,usr.y,usr.z))
usr.DBalls.Remove(/obj/dragonballs/dragonballsevenitem)
del src
mob/var/list/DBalls = list()
obj/dragonballs
icon = 'dragonballs.dmi'
dragonballone
icon_state = "1"
name = "One Star Dragonball"
dragonballs = 1
Click()
usr << "You got the one-star dragonball!"
usr.dragonballs += 1
usr.dbone = 1
usr.DBalls.Add(new/obj/dragonballs/dragonballoneitem)
src.owner = usr.name
del src
In response to RaeKwon
Why not give your dragonballs a start location hehe. Raekwon why go that complicated when you can do this.

mob/Logout()
for(var/obj/dragonball/O in src.DBALLS)
O.Move(locate(O.sx,O.sy,O.sz))
del(src)

Also it would be good to have a dragonball path in it so it's easier to code this.

for example

obj/dragonball/dbball1 //see

now

obj/dragonball/New()//when dragon ball is created
..()//calls parent proc
src.sx = src.x//makes starting loc sx
src.sy = src.y
src.sz = src.z

Now just make the vars for sx and so on and voila