float item_keys_usekey(entity l, entity p) {
float valid = l.itemkeys & p.itemkeys;
float item_keys_usekey(entity l, entity p) {
float valid = l.itemkeys & p.itemkeys;
// one key
if ((keylist & (keylist-1)) != 0)
return strcat("the ", item_keys_names[lowestbit(keylist)]);
// one key
if ((keylist & (keylist-1)) != 0)
return strcat("the ", item_keys_names[lowestbit(keylist)]);
n = strcat(n, ", the ", item_keys_names[base + l]);
else
n = strcat("the ", item_keys_names[base + l]);
n = strcat(n, ", the ", item_keys_names[base + l]);
else
n = strcat("the ", item_keys_names[base + l]);
other.itemkeys |= self.itemkeys;
play2(other, self.noise);
other.itemkeys |= self.itemkeys;
play2(other, self.noise);
self.mdl = self.model;
self.effects = EF_LOWPRECISION;
setmodel(self, self.model);
self.mdl = self.model;
self.effects = EF_LOWPRECISION;
setmodel(self, self.model);
setsize(self, '-16 -16 -56', '16 16 0');
self.modelflags |= MF_ROTATE;
self.solid = SOLID_TRIGGER;
setsize(self, '-16 -16 -56', '16 16 0');
self.modelflags |= MF_ROTATE;
self.solid = SOLID_TRIGGER;
/*QUAKED item_key (0 .5 .8) (-16 -16 -24) (16 16 32) FLOATING
A key entity.
The itemkeys should contain one of the following key IDs:
/*QUAKED item_key (0 .5 .8) (-16 -16 -24) (16 16 32) FLOATING
A key entity.
The itemkeys should contain one of the following key IDs:
void spawnfunc_item_key() {
local string _model, _netname;
local vector _colormod;
void spawnfunc_item_key() {
local string _model, _netname;
local vector _colormod;
// reject this entity if more than one key was set!
if (self.itemkeys>0 && (self.itemkeys & (self.itemkeys-1)) != 0) {
objerror("item_key.itemkeys must contain only 1 bit set specifying the key it represents!");
// reject this entity if more than one key was set!
if (self.itemkeys>0 && (self.itemkeys & (self.itemkeys-1)) != 0) {
objerror("item_key.itemkeys must contain only 1 bit set specifying the key it represents!");
// set default pickup message
if (self.message == "")
self.message = strzone(strcat("You've picked up the ", self.netname, "!"));
if (self.noise == "")
self.noise = "misc/itempickup.wav";
// set default pickup message
if (self.message == "")
self.message = strzone(strcat("You've picked up the ", self.netname, "!"));
if (self.noise == "")
self.noise = "misc/itempickup.wav";
*/
void trigger_keylock_trigger(string s) {
local entity t, stemp, otemp, atemp;
*/
void trigger_keylock_trigger(string s) {
local entity t, stemp, otemp, atemp;
void trigger_keylock_touch(void) {
local float key_used, started_delay;
void trigger_keylock_touch(void) {
local float key_used, started_delay;
centerprint(other, strcat("You need ", item_keys_keylist(self.itemkeys), "!"));
other.key_door_messagetime = time + 2;
}
centerprint(other, strcat("You need ", item_keys_keylist(self.itemkeys), "!"));
other.key_door_messagetime = time + 2;
}
// all keys were given!
play2(other, self.noise);
centerprint(other, self.message);
// all keys were given!
play2(other, self.noise);
centerprint(other, self.message);
// precache sounds
precache_sound(self.noise);
precache_sound(self.noise1);
precache_sound(self.noise2);
// precache sounds
precache_sound(self.noise);
precache_sound(self.noise1);
precache_sound(self.noise2);