var c_npc typ - czyli na kim ma być wykonana funkcja. Self - postać, która np. użyje przedmiotu z tą funkcją. Hero - postać, którą obecnie grasz. Other - ktoś inny. Other używa się np. w dialogach gdzie self to npc, z którym rozmawiasz, a other to ty.
var int ATR - atrybut. Czyli siła, zręczność, lub mana.
var int AtrPlus - ilość dodanych punktów do atrybutu
Czyli jeśli w var int atr wpiszemy np. ATR_STRENGTH
W warunku jest sprawdzane
if (ATR == ATR_STRENGTH) { Typ_Atr = typ.attribute[ATR_STRENGTH]; }
Tłumaczę na polski :
Jeśli atr == ATR_STRENGTH (siła), zmienna typ_atr to dodanie tyle siły ile wpiszesz w Atr_Plus.
if (Typ_Atr + AtrPlus <= 100)
czyli jeśli wartość danego atrybutu jest mniejsza niż 100
typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus; < wpisanego w var c_npc typ npc'ta siła to jego siła + wartość wpisana w AtrPlus
PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING); < Dziwnie to wytłumaczę. PrintString to zmienna, w której wpisujemy tekst w cudzysłowie. (zmienna jest zrobiona kilka linijek wyżej : var string PrintSTRING;
NAME_BuyAttributeSTR to zdanie zapisane w pliku text w zmiennej. Czyli po prostu : siła +.
AtrPlusSTRING kolejna zmienna, w której piszemy słowa w cudzysłowie.
var string AtrPlusSTRING; < zmienna, o której mówię.
AtrPlusSTRING = IntToString(AtrPlus); < w tej zmiennej tekst to ilość punktów dodanych do siły.
IntToString(AtrPlus); < To jest fajne

Przekształca zmienną liczbę w cytat. Przydatne do robienie zegara/stopera.
PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); < wyswietlenie PrintString czyli "Jakiś atrybut + wartość atrybutu"