ID:140908   Aug 3 2009, 7:33 am Code: ```mob verb Body_Expand(X as num) if(X==0) if(usr.expand==0) usr<<"You are not expanded to revert" return usr.expand=0 usr.transbp=n_transbp usr.transst=n_transst usr.transen=n_transen usr.transfo=n_transfo usr.transre=n_transre usr.transsp=n_transsp usr.te=src.te_max usr.thp=src.thp_max usr<<"You revert from body expand" usr.icon=src.reserveicon return if(usr.expand<0) usr.icon=src.reserveicon usr.transbp=n_transbp usr.transst=n_transst usr.transen=n_transen usr.transfo=n_transfo usr.transre=n_transre usr.transsp=n_transsp usr.te=src.te_max usr.thp=src.thp_max if(X>=usr.expand_max) usr<<"Your max expand is [usr.expand_max] it automaticaly turned into it" X=usr.expand_max usr.expand=X usr.transbp+=X/2.5 usr.transst+=X/1.5 usr.transen+=X/2.8 usr.transfo-=X/3 usr.transre-=X/3 usr.transsp-=X/3 usr.te-=X/3 usr.thp+=X/1.6 if(usr.transfo<=0) usr.transfo=0.1 if(usr.transre<=0) usr.transre=0.1 if(usr.transsp<=0) usr.transsp=0.1 if(usr.te<=0) usr.te=0.1 usr<<"You expanded to level [src.expand],to revert expand to 0, expand makes you stronger but slower and less ki" usr.update() usr.reserveicon=usr.icon sleep(0.01) var/icon/I = usr.icon I.Scale(32,64) usr.icon=I ``` Problem description: When i use the verb everything goes normal my power raises my stats increase but the icon dont change and it says runtime error: Cannot execute null.Scale(). proc name: Body Expand (/mob/verb/Body_Expand) usr: Karffebon (/mob) src: Karffebon (/mob) call stack: Karffebon (/mob): Body Expand(1)
 <-> Aug 3 2009, 7:39 am The icon variable isn't actually an icon, it's essentially a filename (or a reference to icon data in the .rsc file). You need to use new() to create an icon from it.
 <-> Aug 3 2009, 7:48 am In response to Garthor it's kinda difficult to me to understand the guide cause i didnt master english yet so if you could fix the icon part to me it would be very helpful, just show me how to make with the new() proc
 <-> Aug 3 2009, 7:49 am In response to Karffebon That's the reference, not the guide, and it provides an example of how to use new().
 <-> Aug 3 2009, 8:02 am (Edited on Aug 3 2009, 8:08 am) In response to Garthor ```var/icon/I = new(usr.icon)I.Scale(64,64)usr.icon=I ``` This didnt work...
 <-> Aug 3 2009, 8:04 am In response to Karffebon That's because BYOND doesn't have built in support for icons bigger than 32x32. You have to change the user's icon state etc. yourself, or use ShadowDarke's big atom library.
 <-> Aug 3 2009, 8:10 am In response to Jeff8500 If a simple 32×32 icon is scaled to a larger size, the big icon will have extra icon states. If for example the original had a state named "open", then the new icon will have a thumbnail image in "open", but it will have 32×32-pixel segments stored in "open 0,0" (the lower left corner), "open 1,0" (lower right), "open 0,1" (upper left), and "open 1,1" (upper right). What does that mean? And why didnt BYOND do it for my icon?
 <-> Aug 3 2009, 8:43 am In response to Karffebon It means that BYOND made your icon bigger, but it did so by making new 32x32 icon states. To handle this, you need to add overlays and some collision detection. However, this seems a bit out of your league, so I recommend Shadowdarke's Big Atom library (again), which does that for you.