implement ammo distribution flag
This commit is contained in:
parent
71ac1c45a1
commit
6bca60e74a
|
@ -442,7 +442,7 @@ void() weapon_touch = {
|
||||||
sound(other, CHAN_ITEM, "weapons/pkup.wav", 1, ATTN_NORM);
|
sound(other, CHAN_ITEM, "weapons/pkup.wav", 1, ATTN_NORM);
|
||||||
stuffcmd(other, "bf\n");
|
stuffcmd(other, "bf\n");
|
||||||
|
|
||||||
bound_other_ammo();
|
bound_ammo(other);
|
||||||
|
|
||||||
// change to the weapon
|
// change to the weapon
|
||||||
old = other.items;
|
old = other.items;
|
||||||
|
@ -566,65 +566,66 @@ AMMO
|
||||||
===============================================================================
|
===============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void(.float ammo, float max) distribute_ammo = {
|
||||||
|
entity pl, stemp;
|
||||||
|
|
||||||
|
if(sf_dist_ammo) {
|
||||||
|
pl = find(world, classname, "player");
|
||||||
|
while(pl != world) {
|
||||||
|
pl.ammo += self.aflag;
|
||||||
|
bound_ammo(pl);
|
||||||
|
stemp = self;
|
||||||
|
self = pl;
|
||||||
|
W_SetCurrentAmmo();
|
||||||
|
self = stemp;
|
||||||
|
pl = find(pl, classname, "player");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(other.ammo >= max) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
other.ammo += self.aflag;
|
||||||
|
bound_ammo(other);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void() ammo_touch = {
|
void() ammo_touch = {
|
||||||
entity stemp;
|
entity stemp;
|
||||||
float best;
|
float best;
|
||||||
|
|
||||||
if(other.classname != "player") {
|
if(other.classname != "player" || other.health <= 0) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(other.health <= 0) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the player was using their best weapon, change up to the new one if better
|
// if the player was using their best weapon, change up to the new one if
|
||||||
|
// better
|
||||||
stemp = self;
|
stemp = self;
|
||||||
self = other;
|
self = other;
|
||||||
best = W_BestWeapon();
|
best = W_BestWeapon();
|
||||||
self = stemp;
|
self = stemp;
|
||||||
|
|
||||||
|
switch(self.weapon) {
|
||||||
// shotgun
|
case AMTYPE_SHELLS:
|
||||||
if(self.weapon == 1) {
|
distribute_ammo(ammo_shells, AMMAX_SHELLS);
|
||||||
if(other.ammo_shells >= 100) {
|
break;
|
||||||
return;
|
case AMTYPE_NAILS:
|
||||||
|
distribute_ammo(ammo_nails, AMMAX_NAILS);
|
||||||
|
break;
|
||||||
|
case AMTYPE_ROCKETS:
|
||||||
|
distribute_ammo(ammo_rockets, AMMAX_ROCKETS);
|
||||||
|
break;
|
||||||
|
case AMTYPE_CELLS:
|
||||||
|
distribute_ammo(ammo_cells, AMMAX_CELLS);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
other.ammo_shells = other.ammo_shells + self.aflag;
|
|
||||||
}
|
|
||||||
|
|
||||||
// spikes
|
|
||||||
if(self.weapon == 2) {
|
|
||||||
if(other.ammo_nails >= 200) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
other.ammo_nails = other.ammo_nails + self.aflag;
|
|
||||||
}
|
|
||||||
|
|
||||||
// rockets
|
|
||||||
if(self.weapon == 3) {
|
|
||||||
if(other.ammo_rockets >= 100) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
other.ammo_rockets = other.ammo_rockets + self.aflag;
|
|
||||||
}
|
|
||||||
|
|
||||||
// cells
|
|
||||||
if(self.weapon == 4) {
|
|
||||||
if(other.ammo_cells >= 100) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
other.ammo_cells = other.ammo_cells + self.aflag;
|
|
||||||
}
|
|
||||||
|
|
||||||
bound_other_ammo();
|
|
||||||
|
|
||||||
sprint(other, "You got the ", self.netname, "\n");
|
sprint(other, "You got the ", self.netname, "\n");
|
||||||
|
|
||||||
// ammo touch sound
|
// ammo touch sound
|
||||||
sound(other, CHAN_ITEM, "weapons/lock4.wav", 1, ATTN_NORM);
|
sound(other, CHAN_ITEM, "weapons/lock4.wav", 1, ATTN_NORM);
|
||||||
stuffcmd(other, "bf\n");
|
stuffcmd(other, "bf\n");
|
||||||
|
|
||||||
// change to a better weapon if appropriate
|
// change to a better weapon if appropriate
|
||||||
|
|
||||||
if(other.weapon == best) {
|
if(other.weapon == best) {
|
||||||
stemp = self;
|
stemp = self;
|
||||||
self = other;
|
self = other;
|
||||||
|
@ -1100,7 +1101,7 @@ void() BackpackTouch = {
|
||||||
old = other.items;
|
old = other.items;
|
||||||
other.items = other.items | new;
|
other.items = other.items | new;
|
||||||
|
|
||||||
bound_other_ammo();
|
bound_ammo(other);
|
||||||
|
|
||||||
if(self.ammo_shells) {
|
if(self.ammo_shells) {
|
||||||
if(acount) {
|
if(acount) {
|
||||||
|
|
6
todo
6
todo
|
@ -9,7 +9,8 @@ rename all functions to be lower_underscore
|
||||||
|
|
||||||
core features:
|
core features:
|
||||||
|
|
||||||
distributed ammo
|
add registercvar support
|
||||||
|
restart map after 10 seconds when everyone is dead
|
||||||
|
|
||||||
useful features:
|
useful features:
|
||||||
|
|
||||||
|
@ -21,7 +22,7 @@ extraneous features:
|
||||||
|
|
||||||
emotes
|
emotes
|
||||||
player sound effect option
|
player sound effect option
|
||||||
players shoot through eachother
|
players shoot through eachother (teamplay 4?)
|
||||||
selectable player models and skins
|
selectable player models and skins
|
||||||
sound clips
|
sound clips
|
||||||
third person player weapon models
|
third person player weapon models
|
||||||
|
@ -30,5 +31,6 @@ done:
|
||||||
|
|
||||||
corpse pickups have keys
|
corpse pickups have keys
|
||||||
custom pronouns
|
custom pronouns
|
||||||
|
distributed ammo
|
||||||
lives counting
|
lives counting
|
||||||
no friendly fire
|
no friendly fire
|
||||||
|
|
Loading…
Reference in New Issue
Block a user