Kiedyś robiłem reputację na kartce. To również opierało się na wyświetlanie zmienionych zmiennych w trakcie gry. Pokażę ci skrypt, może coś z niego wybierzesz:
INSTANCE reputacja (C_Item)
{
name = "Moja reputacja";
mainflag = ITEM_KAT_DOCS;
flags = ITEM_MISSION;
value = 0;
visual = "ItWr_Scroll_01.3DS"; //VARIATIONEN: ItWr_Scroll_01.3DS, ItWr_Scroll_02.3DS
material = MAT_LEATHER;
on_state[0] = usereputacja;
scemeName = "MAP";
description = "Moja reputacja";
};
func void usereputacja ()
{
var string REP1; REP1 = "Reputacja u piratów: "; REP1 = ConcatStrings(REP1,IntToString(pirreput));
var string REP2; REP2 = "Reputacja u assasynów: "; REP2 = ConcatStrings(REP2,IntToString(assreput));
var int nDocID;
nDocID = Doc_Create () ; // DocManager
Doc_SetPages ( nDocID, 1 ); //wieviel Pages
Doc_SetPage ( nDocID, 0, "letters.TGA" , 0 );
Doc_SetFont ( nDocID, 0, FONT_BookHeadline ); // -1 -> all pages
Doc_SetMargins ( nDocID, -1, 50, 50, 50, 50, 1 ); // 0 -> margins are in pixels
Doc_PrintLine ( nDocID, 0, "Reputacja" );
Doc_SetFont ( nDocID, 0, FONT_Book ); // -1 -> all pages
Doc_PrintLine ( nDocID, 0, "" );
Doc_PrintLine ( nDocID, 0, REP1);
Doc_PrintLine ( nDocID, 0, REP2);
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "");
Doc_PrintLine ( nDocID, 0, "Maksymalna reputacja: 100");
Doc_Show ( nDocID );
};
pirreput i assreput to zmienne określone wcześniej, w innym pliku.