Anton Tarasenko
2 years ago
3 changed files with 139 additions and 0 deletions
@ -0,0 +1,39 @@
|
||||
/** |
||||
* Author: dkanus |
||||
* Home repo: https://www.insultplayers.ru/git/AcediaFramework/AcediaCore |
||||
* License: GPL |
||||
* Copyright 2023 Anton Tarasenko |
||||
*------------------------------------------------------------------------------ |
||||
* This file is part of Acedia. |
||||
* |
||||
* Acedia is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* Acedia is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Acedia. If not, see <https://www.gnu.org/licenses/>. |
||||
*/ |
||||
class ChatAPI_OnVoiceMessage_Signal extends Signal |
||||
dependsOn(ChatApi); |
||||
|
||||
public final function Emit(EPlayer sender, ChatApi.BuiltInVoiceMessage message) { |
||||
local Slot nextSlot; |
||||
|
||||
StartIterating(); |
||||
nextSlot = GetNextSlot(); |
||||
while (nextSlot != none) { |
||||
ChatAPI_OnVoiceMessage_Slot(nextSlot).connect(sender, message); |
||||
nextSlot = GetNextSlot(); |
||||
} |
||||
CleanEmptySlots(); |
||||
} |
||||
|
||||
defaultproperties { |
||||
relatedSlotClass = class'ChatAPI_OnVoiceMessage_Slot' |
||||
} |
@ -0,0 +1,41 @@
|
||||
/** |
||||
* Author: dkanus |
||||
* Home repo: https://www.insultplayers.ru/git/AcediaFramework/AcediaCore |
||||
* License: GPL |
||||
* Copyright 2023 Anton Tarasenko |
||||
*------------------------------------------------------------------------------ |
||||
* This file is part of Acedia. |
||||
* |
||||
* Acedia is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* Acedia is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Acedia. If not, see <https://www.gnu.org/licenses/>. |
||||
*/ |
||||
class ChatAPI_OnVoiceMessage_Slot extends Slot; |
||||
|
||||
delegate connect( |
||||
EPlayer sender, |
||||
ChatApi.BuiltInVoiceMessage message |
||||
) { |
||||
DummyCall(); |
||||
} |
||||
|
||||
protected function Constructor() { |
||||
connect = none; |
||||
} |
||||
|
||||
protected function Finalizer() { |
||||
super.Finalizer(); |
||||
connect = none; |
||||
} |
||||
|
||||
defaultproperties { |
||||
} |
@ -0,0 +1,59 @@
|
||||
/** |
||||
* Author: dkanus |
||||
* Home repo: https://www.insultplayers.ru/git/AcediaFramework/AcediaCore |
||||
* License: GPL |
||||
* Copyright 2023 Anton Tarasenko |
||||
*------------------------------------------------------------------------------ |
||||
* This file is part of Acedia. |
||||
* |
||||
* Acedia is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* Acedia is distributed in the hope that it will be useful,, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Acedia. If not, see <https://www.gnu.org/licenses/>. |
||||
*/ |
||||
class Unflect_ChatApi_Controller extends KFPlayerController |
||||
dependsOn(ChatAPI); |
||||
|
||||
function SendVoiceMessage( |
||||
PlayerReplicationInfo sender, |
||||
PlayerReplicationInfo statedRecipient, |
||||
name messageType, |
||||
byte messageID, |
||||
name broadcastType, |
||||
optional Pawn soundSender, |
||||
optional vector senderLocation |
||||
) { |
||||
local Controller recepient; |
||||
local KFPlayerController kfPlayerRecepient; |
||||
|
||||
// Don't allow dead people to talk |
||||
if (pawn == none) return; |
||||
if (!AllowVoiceMessage(messageType)) return; |
||||
|
||||
class'Global'.static.GetInstance().chat._EmitOnVoiceMessage(self, messageType, messageID); |
||||
recepient = level.controllerList; |
||||
while (recepient != none) { |
||||
kfPlayerRecepient = KFPlayerController(recepient); |
||||
if (kfPlayerRecepient != none) { |
||||
kfPlayerRecepient.ClientLocationalVoiceMessage( |
||||
sender, |
||||
statedRecipient, |
||||
messagetype, |
||||
messageID, |
||||
soundSender, |
||||
senderLocation); |
||||
} |
||||
recepient = recepient.nextController; |
||||
} |
||||
} |
||||
|
||||
defaultproperties { |
||||
} |
Loading…
Reference in new issue