4 void item_key_touch(void) {
5 if (other.classname != "player")
8 // player already picked up this key
9 if (other.itemkeys & self.itemkeys)
12 other.itemkeys |= self.itemkeys;
15 centerprint(other, self.message);
19 Spawn a key with given model, key code and color.
21 void spawn_item_key(float key_code) {
22 self.itemkeys = key_code;
23 precache_model(self.model);
25 if(self.spawnflags & 1)
28 self.movetype = MOVETYPE_NONE;
30 self.movetype = MOVETYPE_TOSS;
32 setsize(self, '-16 -16 -24', '16 16 32');
33 setmodel(self, self.model);
34 self.modelflags |= MF_ROTATE;
38 // first nudge it off the floor a little bit to avoid math errors
39 setorigin(self, self.origin + '0 0 1');
40 // note droptofloor returns FALSE if stuck/or would fall too far
44 self.touch = item_key_touch;
51 void spawnfunc_item_key1(void) {
53 self.model = "models/keys/key.md3";
56 self.colormod = '.9 .9 .9';
59 self.message = "You've picked up the silver key!";
61 spawn_item_key(KEYS_SILVER_KEY);
67 void spawnfunc_item_key2(void) {
69 self.model = "models/keys/key.md3";
72 self.colormod = '1 .9 0';
75 self.message = "You've picked up the gold key!";
77 spawn_item_key(KEYS_GOLD_KEY);