1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
|
init()
{
// Either set it to true or false. DO NOT DISABLE!
level.ex_memory_log = false;
// registerMemory(memID, itemID, itemDef, itemMin, itemMax, itemType)
// itemType: "int", "bool", "char", "float", "string"
// itemMin on itemType "char" can be used as a string with valid characters
registerMemory("cinematic", "status", 1, 0, 1, "bool");
registerMemory("diana", "status", 0, 0, 1, "bool");
registerMemory("lrbind", "key", "m", "1234567890abcdefghijklmnopqrstuvwxyz", "", "char");
registerMemory("jukebox", "status", level.ex_jukebox_power ,0, 1, "bool");
registerMemory("jukebox", "loop", 0 ,0 ,1, "bool");
registerMemory("jukebox", "shuffle", 0, 0, 1, "bool");
registerMemory("jukebox", "track", 1, 1, 99, "int");
registerMemory("zoom", "sr", level.ex_zoom_default_sr, level.ex_zoom_min_sr, level.ex_zoom_max_sr, "int");
registerMemory("zoom", "lr", level.ex_zoom_default_lr, level.ex_zoom_min_lr, level.ex_zoom_max_lr, "int");
registerMemory("rcon", "pin", "xxxx", "", "", "string");
registerMemory("score", "points", 0, 0, 1000000, "int");
registerMemory("score", "kills", 0, 0, 1000000, "int");
registerMemory("score", "deaths", 0, 0, 1000000, "int");
registerMemory("score", "bonus", 0, 0, 1000000, "int");
//dumpMemoryStruct();
if(level.ex_scorememory)
{
level.scorememory = [];
level thread onSecond();
}
}
onSecond()
{
for( ; ; )
{
wait( [[level.ex_fpstime]]( 1.0 ) );
for(i = 0; i < level.scorememory.size; i++)
if(isDefined(level.scorememory[i].graceperiod) && level.scorememory[i].graceperiod > 0) level.scorememory[i].graceperiod--;
}
}
setScoreMemory(name)
{
index = -1;
// check if name is already in list
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].name == name)
{
index = i;
break;
}
}
// name is not in list, so check for expired records
if(index == -1)
{
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].graceperiod == 0)
{
index = i;
break;
}
}
}
// no expired records, so create new one
if(index == -1)
{
index = level.scorememory.size;
level.scorememory[index] = spawnstruct();
}
level.scorememory[index].graceperiod = level.ex_scorememory;
level.scorememory[index].name = name;
}
getScoreMemory(name)
{
index = -1;
// check if name is in list
for(i = 0; i < level.scorememory.size; i++)
{
if(isDefined(level.scorememory[i].name) && level.scorememory[i].name == name)
{
// check if still in grace period
if(level.scorememory[i].graceperiod > 0) index = i;
break;
}
}
// return true if player is still in grace period
return( (index != -1) );
} |