ID:2280585
 
(See the best response by Unwanted4Murder.)
Code:
card/proc/GenerateIconSizes(var/card/A)
if(!A)
return

if(!A.icon)
return

A.icon_BigSize = A.icon
A.icon_Hand = icon(A.icon)
A.icon_DE = icon(A.icon)
A.icon_Search = icon(A.icon)
A.icon_Field = icon(A.icon)

A.icon_Hand.Scale(66,96)
A.icon_DE.Scale(55,80)
A.icon_Search.Scale(45,66)
A.icon_Field.Scale(34,50)

A.icon_BigSize = fcopy_rsc(A.icon_BigSize)
A.icon_Hand = fcopy_rsc( A.icon_Hand)
A.icon_DE = fcopy_rsc(A.icon_DE)
A.icon_Search = fcopy_rsc(A.icon_Search)
A.icon_Field = fcopy_rsc(A.icon_Field)


Problem description:
When a card is created, this function is called. Now I have been told that calling Scale() too often will start problems but I have no idea on how to go about it.

The basic problem is after being logged in for a certain amount of time, cards that are resize will disappear but when you re log, the card (correctly resized) is now there. I was going post this as a BYOND bug but I am not sure right now.

https://cdn.discordapp.com/attachments/163780366329577474/ 343928214214934529/unknown-1.png
(The desired result is the right card in the middle of the field and the result that occurs is the where the counter is without the image).

UPDATE:
So it only seems to work for the person who engaged the card creation (which follows the GenerateIconSize Function.

https://i.gyazo.com/a7744e581e3068597771efdd9eaaa671.png - The person who created the object.

https://i.gyazo.com/a859ecc10acd62ee6104d517651880ed.png - Outside Client
Best response
Why are you scaling the icon itself instead of scaling the object's transform?
I have tried the matrix method but it doesnt work on the server the game is hosted on sadly.
In response to DevDuelist
DevDuelist wrote:
I have tried the matrix method but it doesnt work on the server the game is hosted on sadly.

What version of BYOND is installed on the server?
In response to DevDuelist
DevDuelist wrote:
I have tried the matrix method but it doesnt work on the server the game is hosted on sadly.

Say what now? Transforms have been around for a long time now, and any version that doesn't respect them has no business being used to host.
BYOND 5.0 Public 511.1384 Linux (also the game is compiled in 511.1385 which I upgraded just yesterday but I tested the matrix Scale() when both the Linux and Build were the same version.

I used Matrix to scale them down but it didn't work but it was weird because when I hosted from a windows computer (My own) and another programmer and myself tested it and the results were what I wanted. But it doesn't seem to work on a linux server.

EDIT: I updated the server to the latest build and tried the system again. It only seems to occur when Scale() is called because in the past, I had no problems with Turn.