Pointer = wartość liczbowa
Instance = klasa
W teorii to to samo, bo numerki, ale nie można dodać dwóch instance, a można dodać dwa pointery (problem w tym, że zamiana w instance nic nie da - crash). ReadInt odczytuje wartość z pamięci gry, PtrToInst, czy też _@() zamienia instance w numerek (pointer).
Przyjmijmy, że hero wynosi 1931:
MEM_ReadInt(1931); da nam hero.
MEM_PtrToInst(hero); / _@(hero); da nam 1931
Nie możesz przypisać instance przedmiotu do instance npc. Dajmy na to, że:
hero = 1931;
itmw_2h_special_01 = 1931;
var oCItem itm; itm = MEM_ReadInt(1931); = pobieramy ten przedmiot, zaś zastępując oCItem klasą oCNpc, da nam hero.
_@() / MEM_PtrToInst() zmienia jakąkolwiek instance w pointer, a MEM_ReadInt() odczytuje wartości z silnika.
MEM_ReadInt(itmw_2h_special_01); może dać Ci ptr do klasy SkyController, a skonwertowanie tego z powrotem może Ci dać instance noża na wilki (to się praktycznie nigdy nie zdarza, dałem tylko jako przykład, aczkolwiek mnie się takie coś przytrafiło). W przypadku użycia _@() / MEM_PtrToInst(), zawsze będzie ta sama liczba.