void killPlayers(int safeid, std::string kothcallsign) { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList(playerList); for (unsigned int i = 0; i < playerList->size(); i++) { bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player) { if (player->playerID != safeid) { bz_killPlayer(player->playerID, true, koth.id); if (koth.soundEnabled) bz_sendPlayCustomLocalSound(player->playerID, "flag_lost"); } else if (koth.soundEnabled) { bz_sendPlayCustomLocalSound(player->playerID, "flag_won"); } } bz_freePlayerRecord(player); } bz_deleteIntList(playerList); bz_sendTextMessagef(BZ_SERVER, BZ_ALLUSERS, "%s IS KING OF THE HILL!", kothcallsign.c_str()); return; }
void KillTeam(bz_eTeamType TeamToKill) { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList(playerList); for (unsigned int i = 0; i < playerList->size(); i++) { bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player) { if (player->team == TeamToKill) { bz_killPlayer(player->playerID, true, BZ_SERVER); if (tctf.soundEnabled) bz_sendPlayCustomLocalSound(player->playerID, "flag_lost"); } else if (tctf.soundEnabled) { bz_sendPlayCustomLocalSound(player->playerID, "flag_won"); } bz_freePlayerRecord(player); } } bz_deleteIntList(playerList); return; }
void killTeams(bz_eTeamType safeteam, std::string keepawaycallsign) { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList ( playerList ); for ( unsigned int i = 0; i < playerList->size(); i++ ){ bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player){ if (player->team != safeteam) { bz_killPlayer(player->playerID, true, BZ_SERVER); if (keepaway.soundEnabled) bz_sendPlayCustomLocalSound(player->playerID,"flag_lost"); } else if (keepaway.soundEnabled) bz_sendPlayCustomLocalSound(player->playerID,"flag_won"); } bz_freePlayerRecord(player); } bz_deleteIntList(playerList); bz_sendTextMessagef (BZ_SERVER, BZ_ALLUSERS, "%s (%s) Kept the Flag Away!", getTeamColor(safeteam), keepawaycallsign.c_str()); if (keepaway.flagResetEnabled) bz_resetFlags(true); return; }
void killAllHunters(std::string messagepass) { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList(playerList); for (unsigned int i = 0; i < playerList->size(); i++){ bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player) { if (player->team != eRabbitTeam) { bz_killPlayer(player->playerID, true, BZ_SERVER); bz_sendTextMessage(BZ_SERVER, player->playerID, messagepass.c_str()); if (rrzoneinfo.soundEnabled) bz_sendPlayCustomLocalSound(player->playerID,"flag_lost"); } if (player->team == eRabbitTeam && rrzoneinfo.soundEnabled && bz_getTeamCount(eHunterTeam) > 0) bz_sendPlayCustomLocalSound(player->playerID,"flag_won"); bz_freePlayerRecord(player); } } bz_deleteIntList(playerList); return; }
void initiatekeepaway(bz_eTeamType plyrteam, bz_ApiString plyrcallsign, int plyrID) { keepaway.team = plyrteam; keepaway.callsign = plyrcallsign.c_str(); if (keepaway.callsign.size() > 16) { std::string tofix = truncate(keepaway.callsign, 16); keepaway.callsign = tofix; } keepaway.id = plyrID; keepaway.startTime = bz_getCurrentTime(); keepaway.TTHminutes = (int)(keepaway.adjustedTime/60 + 0.5); keepaway.TTHseconds = 30; keepaway.toldFlagFree = false; bool multipleof30 = false; if ((int)((keepaway.adjustedTime / 30) + 0.5) != (double)(keepaway.adjustedTime / 30)) multipleof30 = false; else multipleof30 = true; if (!multipleof30) { if ((!keepaway.teamPlay || keepaway.team == eRogueTeam)) bz_sendTextMessagef (BZ_SERVER, BZ_ALLUSERS, "%s has %s flag; %i secs left!", keepaway.callsign.c_str(), keepaway.flagToKeep.c_str(), (int)keepaway.adjustedTime); else bz_sendTextMessagef (BZ_SERVER, BZ_ALLUSERS, "%s (%s) has %s flag; %i secs left!", getTeamColor(keepaway.team), keepaway.callsign.c_str(), keepaway.flagToKeep.c_str(), (int)keepaway.adjustedTime); } if (keepaway.soundEnabled) { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList ( playerList ); for ( unsigned int i = 0; i < playerList->size(); i++ ) { bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player) { if ((player->team != keepaway.team || player->team == eRogueTeam) && player->playerID != keepaway.id) bz_sendPlayCustomLocalSound(player->playerID,"flag_alert"); else bz_sendPlayCustomLocalSound(player->playerID,"teamgrab"); } bz_freePlayerRecord(player); } bz_deleteIntList(playerList); } return; }
void KeepAwayPlayerJoined ( bz_EventData *eventData ) { if (eventData->eventType != bz_ePlayerJoinEvent || !keepaway.enabled || keepaway.flagToKeep == "") return; bz_PlayerJoinPartEventData_V1 *joinData = (bz_PlayerJoinPartEventData_V1*)eventData; if (keepaway.flagToKeep == "Initiate") //first time server starts, first player initiates it. { keepaway.flagToKeep = getFlag(); keepaway.lastReminder = bz_getCurrentTime(); } autoTime(); if (oneTeam(eNoTeam)) // don't send message if not enough teams { keepaway.notEnoughTeams = true; return; } else keepaway.notEnoughTeams = false; if (keepaway.id == -1 && keepaway.enabled && keepaway.flagToKeep != "") { bz_sendTextMessagef (BZ_SERVER, joinData->playerID, "Keep Away flag is %s: find it and keep it for %i seconds!", convertFlag(keepaway.flagToKeep).c_str(), (int)keepaway.adjustedTime); if (keepaway.soundEnabled) bz_sendPlayCustomLocalSound(joinData->playerID,"hunt_select"); } if (keepaway.id != -1 && keepaway.enabled && keepaway.flagToKeep != "" && (joinData->record->team != keepaway.team || joinData->record->team == eRogueTeam)) { bz_sendTextMessagef (BZ_SERVER, joinData->playerID, "%s has Keep Away flag %s - kill him/her before time's up!", keepaway.callsign.c_str(), convertFlag(keepaway.flagToKeep).c_str()); if (keepaway.soundEnabled) bz_sendPlayCustomLocalSound(joinData->playerID,"flag_alert"); } if (keepaway.id != -1 && keepaway.enabled && keepaway.flagToKeep != "" && (joinData->record->team == keepaway.team && joinData->record->team != eRogueTeam)) { bz_sendTextMessagef (BZ_SERVER, joinData->playerID, "%s has Keep Away flag %s - protect him/her until time's up!", keepaway.callsign.c_str(), convertFlag(keepaway.flagToKeep).c_str()); if (keepaway.soundEnabled) bz_sendPlayCustomLocalSound(joinData->playerID,"teamgrab"); } return; }
void playAlert() { bz_APIIntList *playerList = bz_newIntList(); bz_getPlayerIndexList ( playerList ); for ( unsigned int i = 0; i < playerList->size(); i++ ) { bz_BasePlayerRecord *player = bz_getPlayerByIndex(playerList->operator[](i)); if (player) bz_sendPlayCustomLocalSound(player->playerID,"hunt_select"); bz_freePlayerRecord(player); } bz_deleteIntList(playerList); return; }