ID:146576
 
Code:
mob/var
Body
Protect
Armor_Equipped

obj/Armor
icon = 'Armor.dmi'
var/Body
var/Protect
verb/Get()
set src in oview(1)
usr.contents += src
usr << "You get [src]!"
verb/Drop()
set src in usr.contents
del(src)
verb/Equip()
set src in usr.contents
if(usr.Armor_Equipped == null)
usr.overlays += src
usr.Protect = src.Protect
usr.Body = src.Body
else
..()
verb/Unequip()
set src in usr.contents
if(usr.Armor_Equipped == 1)
usr.overlays -= src
usr.Protect = 0
usr.Body = null
else
..()

obj/Armor/Water_Armor
icon_state = "Water_Armor"
Body = "Water"
Protect = 1
Get()
..()
Drop()
..()
new/obj/Armor/Water_Armor(usr.loc)
Equip()
..()
Unequip()
..()


Problem description:
When you equip an armor it doesn't put on the overlay.

Almasy wrote:
Code:
> mob/var
> Body
> Protect
> Armor_Equipped
>
> obj/Armor
> icon = 'Armor.dmi'
> var/Body
> var/Protect
> verb/Get()
> set src in oview(1)
> usr.contents += src
> usr << "You get [src]!"
> verb/Drop()
> set src in usr.contents
> del(src)
> verb/Equip()
> set src in usr.contents
> if(usr.Armor_Equipped == null)
> usr.overlays += src
> usr.Protect = src.Protect
> usr.Body = src.Body
> else
> ..()
> verb/Unequip()
> set src in usr.contents
> if(usr.Armor_Equipped == 1)
> usr.overlays -= src
> usr.Protect = 0
> usr.Body = null
> else
> ..()
>
> obj/Armor/Water_Armor
> icon_state = "Water_Armor"
> Body = "Water"
> Protect = 1
> Get()
> ..()
> Drop()
> ..()
> new/obj/Armor/Water_Armor(usr.loc)
> Equip()
> ..()
> Unequip()
> ..()
>

Problem description:
When you equip an armor it doesn't put on the overlay.


Try this
mob/var
Body
Protect
Armor_Equipped

obj/Armor
icon = 'Armor.dmi'
var/Body
var/Protect
verb/Get()
set src in oview(1)
usr.contents += src
usr << "You get [src]!"
verb/Drop()
set src in usr.contents
del(src)
verb/Equip()
set src in usr.contents
if(usr.Armor_Equipped == null)
usr.overlays += /obj/Armor
usr.Protect = src.Protect
usr.Body = src.Body
else
..()
verb/Unequip()
set src in usr.contents
if(usr.Armor_Equipped == 1)
usr.overlays -= src
usr.Protect = 0
usr.Body = null
else
..()

obj/Armor/Water_Armor
icon_state = "Water_Armor"
Body = "Water"
Protect = 1
Get()
..()
Drop()
..()
new/obj/Armor/Water_Armor(usr.loc)
Equip()
..()
Unequip()
..()
In response to DaGoat787
That doesn't work either, and I just found out my Drop verb doesn't work. It's deletes the src, but doesn't create a new one in the usr location.
In response to Almasy
This should do it.
mob/var
Body
Protect
Armor_Equipped

obj/Armor
icon = 'Armor.dmi'
var/Body
var/Protect
verb/Get()
set src in oview(1)
usr.contents += src
usr << "You get [src]!"
verb/Drop()
set src in usr
src.loc = usr.loc
verb/Equip()
set src in usr.contents
if(usr.Armor_Equipped == null)
overlays += /obj/Armor
usr.Protect = src.Protect
usr.Body = src.Body
else
..()
verb/Unequip()
set src in usr.contents
if(usr.Armor_Equipped == 1)
overlays -= /obj/Armor
usr.Protect = 0
usr.Body = null
else
..()

obj/Armor/Water_Armor
icon_state = "Water_Armor"
Body = "Water"
Protect = 1
Get()
..()
Drop()
..()
new/obj/Armor/Water_Armor(usr.loc)
Equip()
..()
Unequip()
..()
In response to DaGoat787
mob/var
Body
Protect
Armor_Equipped=0

obj/Armor
icon = 'Armor.dmi'
var/Body
var/Protect
verb/Get()
set src in oview(1)
usr.contents += src
usr << "You get [src]!"
verb/Drop()
set src in usr.contents
if(usr.Armor_Equipped == 1)
usr << "Please unequip before droping."
else
src.loc = usr.loc
verb/Equip()
set src in usr.contents
if(usr.Armor_Equipped == 0)
usr.overlays += /obj/Armor/
usr.Protect = src.Protect
usr.Body = src.Body
usr << "You equip [src]!"
usr.Armor_Equipped = 1
src.suffix = "Equiped"
else
usr << "You already have something equipped!"
..()
verb/Unequip()
set src in usr.contents
if(usr.Armor_Equipped == 1)
usr.overlays -= /obj/Armor/
usr.Protect = 0
usr.Body = null
usr.Armor_Equipped = 0
src.suffix = ""
else
usr << "You don't have anything equipped!"
..()

obj/Armor/Water_Armor
icon_state = "Water_Armor"
Body = "Water"
Protect = 1
Get()
..()
Drop()
..()
Equip()
..()
Unequip()
..()

obj/Armor/Fire_Armor
icon_state = "Fire_Armor"
Body = "Fire"
Protect = 2
Get()
..()
Drop()
..()
Equip()
..()
Unequip()
..()

obj/Armor/Earth_Armor
icon_state = "Earth_Armor"
Body = "Earth"
Protect = 3
Get()
..()
Drop()
..()
Equip()
..()
Unequip()
..()


They equip the armor, but it doesn't show the overlay. I've tryed everything I can think of, but the only thing that works is putting the whole equip verb under every single armor, and making the armors layer higher than the mob, but I don't wanna resort to that.
In response to Almasy
You don't have to redefine the verb for every armor subtype in order to change the layer.
obj/armor
layer = 5

Just that should be sufficient.
This equipment system doesn't really work. For a proper equipment system, you need to set usr.Armor_Equipped to the actual armor that was equipped, not to 1. It should be null when no armor is equipped.

Lummox JR
In response to Lummox JR
Lummox JR wrote:
This equipment system doesn't really work. For a proper equipment system, you need to set usr.Armor_Equipped to the actual armor that was equipped, not to 1. It should be null when no armor is equipped.

Yes, and if you would like to see an example, Almasy, take a look at hub://wizkidd0123.equipmentdemo! =)
In response to Wizkidd0123
Um in your original drop, it deletes src then locates it. But wait... its deleted so how can itbe placed there :-p. I know u probly already got that fixed but wanted to say that,