X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_items.qc;h=40abd18b135fe920265d197357927a458308f990;hp=b56dfec47d56a79f158cbad1d4e2c74a026467cd;hb=94a967120c8bfe0d4ffd95690b97e5af297dfc05;hpb=6d249c399e3e08bac4f671d875e1a58ba52a5a34 diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index b56dfec47..40abd18b1 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -282,8 +282,6 @@ float have_pickup_item(void) return TRUE; if(autocvar_g_powerups == 0) return FALSE; - if(g_lms) - return FALSE; if(g_ca) return FALSE; if(g_arena) @@ -295,8 +293,6 @@ float have_pickup_item(void) return TRUE; if(autocvar_g_pickup_items == 0) return FALSE; - if(g_lms) - return FALSE; if(g_ca) return FALSE; if(g_weaponarena) @@ -504,17 +500,17 @@ void Item_RespawnCountdown (void) rgb = '1 0 0'; } } - if(!name) - { - print("Unknown powerup-marked item is wanting to respawn\n"); - localcmd(sprintf("prvm_edict server %d\n", num_for_edict(self))); - } if(name) { WaypointSprite_Spawn(name, 0, 0, self, '0 0 64', world, 0, self, waypointsprite_attached, TRUE, RADARICON_POWERUP, rgb); if(self.waypointsprite_attached) WaypointSprite_UpdateBuildFinished(self.waypointsprite_attached, time + ITEM_RESPAWN_TICKS); } + else + { + print("Unknown powerup-marked item is wanting to respawn\n"); + localcmd(sprintf("prvm_edict server %d\n", num_for_edict(self))); + } } sound (self, CH_TRIGGER, "misc/itemrespawncountdown.wav", VOL_BASE, ATTN_NORM); // play respawn sound if(self.waypointsprite_attached) @@ -630,16 +626,16 @@ float Item_GiveTo(entity item, entity player) if (clienttype(player) == CLIENTTYPE_REAL) { if(player.health <= 5) - AnnounceTo(player, "lastsecond"); + Send_Notification(NOTIF_ONE, player, MSG_ANNCE, ANNCE_MINSTAGIB_LASTSECOND); else if(player.health < 50) - AnnounceTo(player, "narrowly"); + Send_Notification(NOTIF_ONE, player, MSG_ANNCE, ANNCE_MINSTAGIB_NARROWLY); } // sound not available // else if(item.items == IT_CELLS) // AnnounceTo(player, "ammo"); if (WEPSET_CONTAINS_EW(item, WEP_MINSTANEX)) - W_GiveWeapon (player, WEP_MINSTANEX, item.netname); + W_GiveWeapon (player, WEP_MINSTANEX); player.health = 100; } @@ -657,7 +653,7 @@ float Item_GiveTo(entity item, entity player) // sound not available // AnnounceTo(player, "_lives"); player.armorvalue = bound(player.armorvalue, 999, player.armorvalue + autocvar_g_minstagib_extralives); - sprint(player, "^3You picked up some extra lives\n"); + Send_Notification(NOTIF_ONE, player, MSG_CENTER, CENTER_EXTRALIVES); } // invis powerup @@ -709,7 +705,7 @@ float Item_GiveTo(entity item, entity player) pickedup = TRUE; for(i = WEP_FIRST; i <= WEP_LAST; ++i) if(WEPSET_CONTAINS_AW(it, i)) - W_GiveWeapon (player, i, item.netname); + W_GiveWeapon(player, i); } } @@ -834,7 +830,7 @@ void Item_Reset() if(self.classname != "droppedweapon") { - self.think = SUB_Null; + self.think = func_null; self.nextthink = 0; if(self.waypointsprite_attached) @@ -1214,6 +1210,14 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, Item_Reset(); Net_LinkEntity(self, FALSE, 0, ItemSend); + + // call this hook after everything else has been done + if(MUTATOR_CALLHOOK(Item_Spawn)) + { + startitem_failed = TRUE; + remove(self); + return; + } } /* replace items in minstagib