X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Ft_items.qc;h=3151d7cdb1c86fb696128d439ef6a38213cff553;hp=5490478baf425071a9a94f2b3495c1be1d483879;hb=2f215c603bf1b4dd44b9d166180f535c88602e9f;hpb=2bc5f6a930cee3d99d71c2602bc8e13db4bead06 diff --git a/qcsrc/common/t_items.qc b/qcsrc/common/t_items.qc index 5490478baf..3151d7cdb1 100644 --- a/qcsrc/common/t_items.qc +++ b/qcsrc/common/t_items.qc @@ -58,8 +58,7 @@ void Item_SetAlpha(entity this) this.alpha = -1; } - if(!veh_hud) - if(this.ItemStatus & ITS_STAYWEP) + if((!veh_hud) && (this.ItemStatus & ITS_STAYWEP)) { this.colormod = this.glowmod = autocvar_cl_weapon_stay_color; this.alpha = autocvar_cl_weapon_stay_alpha; @@ -449,28 +448,30 @@ void Item_Show (entity e, float mode) e.spawnshieldtime = 1; e.ItemStatus &= ~ITS_AVAILABLE; } - else { - bool nostay = def.instanceOfWeaponPickup ? !!(def.m_weapon.weapons & WEPSET_SUPERWEAPONS) : false // no weapon-stay on superweapons - || e.team // weapon stay isn't supported for teamed weapons - ; - if(def.instanceOfWeaponPickup && !nostay && g_weapon_stay) - { - // make the item translucent and not touchable - e.model = e.mdl; - e.solid = SOLID_TRIGGER; // can STILL be picked up! - e.effects |= EF_STARDUST; - e.spawnshieldtime = 0; // field indicates whether picking it up may give you anything other than the weapon - e.ItemStatus |= (ITS_AVAILABLE | ITS_STAYWEP); - } else { - //setmodel(e, "null"); - e.solid = SOLID_NOT; - e.colormod = '0 0 0'; - //e.glowmod = e.colormod; - e.spawnshieldtime = 1; - e.ItemStatus &= ~ITS_AVAILABLE; - }} + bool nostay = def.instanceOfWeaponPickup ? !!(def.m_weapon.weapons & WEPSET_SUPERWEAPONS) : false // no weapon-stay on superweapons + || e.team // weapon stay isn't supported for teamed weapons + ; + if(def.instanceOfWeaponPickup && !nostay && g_weapon_stay) + { + // make the item translucent and not touchable + e.model = e.mdl; + e.solid = SOLID_TRIGGER; // can STILL be picked up! + e.effects |= EF_STARDUST; + e.spawnshieldtime = 0; // field indicates whether picking it up may give you anything other than the weapon + e.ItemStatus |= (ITS_AVAILABLE | ITS_STAYWEP); + } + else + { + //setmodel(e, "null"); + e.solid = SOLID_NOT; + e.colormod = '0 0 0'; + //e.glowmod = e.colormod; + e.spawnshieldtime = 1; + e.ItemStatus &= ~ITS_AVAILABLE; + } + } if (def.m_glow) e.ItemStatus |= ITS_GLOW; @@ -1012,7 +1013,6 @@ float ammo_pickupevalfunc(entity player, entity item) switch(it.ammo_field) { - case ammo_shells: need_shells = true; break; case ammo_shells: need_shells = true; break; case ammo_nails: need_nails = true; break; case ammo_rockets: need_rockets = true; break; @@ -1024,29 +1024,22 @@ float ammo_pickupevalfunc(entity player, entity item) rating = item.bot_pickupbasevalue; } - if (need_shells) - if (item.ammo_shells) - if (player.ammo_shells < g_pickup_shells_max) + if ((need_shells) && (item.ammo_shells) && (player.ammo_shells < g_pickup_shells_max)) c = item.ammo_shells / player.ammo_shells; - if (need_nails) - if (item.ammo_nails) - if (player.ammo_nails < g_pickup_nails_max) + + if ((need_nails) && (item.ammo_nails) && (player.ammo_nails < g_pickup_nails_max)) c = item.ammo_nails / player.ammo_nails; - if (need_rockets) - if (item.ammo_rockets) - if (player.ammo_rockets < g_pickup_rockets_max) + + if ((need_rockets) && (item.ammo_rockets) && (player.ammo_rockets < g_pickup_rockets_max)) c = item.ammo_rockets / player.ammo_rockets; - if (need_cells) - if (item.ammo_cells) - if (player.ammo_cells < g_pickup_cells_max) + + if ((need_cells) && (item.ammo_cells) && (player.ammo_cells < g_pickup_cells_max)) c = item.ammo_cells / player.ammo_cells; - if (need_plasma) - if (item.ammo_plasma) - if (player.ammo_plasma < g_pickup_plasma_max) + + if ((need_plasma) && (item.ammo_plasma) && (player.ammo_plasma < g_pickup_plasma_max)) c = item.ammo_plasma / player.ammo_plasma; - if (need_fuel) - if (item.ammo_fuel) - if (player.ammo_fuel < g_pickup_fuel_max) + + if ((need_fuel) && (item.ammo_fuel) && (player.ammo_fuel < g_pickup_fuel_max)) c = item.ammo_fuel / player.ammo_fuel; rating *= min(2, c); @@ -1064,16 +1057,17 @@ float healtharmor_pickupevalfunc(entity player, entity item) float itemarmor = item.armorvalue; float itemhealth = item.health; + if(item.item_group) { itemarmor *= min(4, item.item_group_count); itemhealth *= min(4, item.item_group_count); } - if (itemarmor) - if (player.armorvalue < item.max_armorvalue) + + if (itemarmor && (player.armorvalue < item.max_armorvalue)) c = itemarmor / max(1, player.armorvalue * 2/3 + player.health * 1/3); - if (itemhealth) - if (player.health < item.max_health) + + if (itemhealth && (player.health < item.max_health)) c = itemhealth / max(1, player.health); rating *= min(2, c); @@ -1370,9 +1364,8 @@ spawnfunc(item_rockets) spawnfunc(item_bullets) { - if(!weaponswapping) - if(autocvar_sv_q3acompat_machineshotgunswap) - if(this.classname != "droppedweapon") + if(!weaponswapping && autocvar_sv_q3acompat_machineshotgunswap && + (this.classname != "droppedweapon")) { weaponswapping = true; spawnfunc_item_shells(this); @@ -1395,9 +1388,8 @@ spawnfunc(item_plasma) spawnfunc(item_shells) { - if(!weaponswapping) - if(autocvar_sv_q3acompat_machineshotgunswap) - if(this.classname != "droppedweapon") + if(!weaponswapping && autocvar_sv_q3acompat_machineshotgunswap && + (this.classname != "droppedweapon")) { weaponswapping = true; spawnfunc_item_bullets(this); @@ -1479,10 +1471,9 @@ void target_items_use(entity this, entity actor, entity trigger) return; } - if (!IS_PLAYER(actor)) - return; - if(IS_DEAD(actor)) + if (!IS_PLAYER(actor) || IS_DEAD(actor)) return; + if(trigger.solid == SOLID_TRIGGER) { EXACTTRIGGER_TOUCH(this, trigger); @@ -1499,7 +1490,7 @@ void target_items_use(entity this, entity actor, entity trigger) spawnfunc(target_items) { - int n, j; + int n; string s; this.use = target_items_use; @@ -1517,7 +1508,7 @@ spawnfunc(target_items) } else { - for(j = 0; j < n; ++j) + for(int j = 0; j < n; ++j) { if (argv(j) == "unlimited_ammo") this.items |= IT_UNLIMITED_AMMO; else if(argv(j) == "unlimited_weapon_ammo") this.items |= IT_UNLIMITED_WEAPON_AMMO; @@ -1601,7 +1592,7 @@ spawnfunc(target_items) //print(this.netname, "\n"); n = tokenize_console(this.netname); - for(j = 0; j < n; ++j) + for(int j = 0; j < n; ++j) { FOREACH(Weapons, it != WEP_Null && W_UndeprecateName(argv(j)) == it.netname, { it.wr_init(it);