Hallo leute ich mal wieder...
ich hab jetzt echt ne weile rumprobiert um meinen Mod zum laufen zu bekommen.
und auch noch einmal komplett von vorn angefangen xD
leider klappt das alles nicht so wie erwünscht.
Eigentlich will ich ja nur eine Sound datei, und eine Notification (expansion Mod) zu einer vorher definierten zeit abbspielen
aber nun bin ich langsam echt frustriert, weil es nie zu laufen scheint...
hier der ungepackte Mod zwecks ordner structur und config für die soundfiles
https://cdn.discordapp.com/attachments/492295576470290433/798954149348769894/secondtry.zip
Code
class PurgeAnsageSoundbox
{
private bool m_PurgeAnsageSoundReady;
private ref Timer m_SoundTimer;
void PurgeAnsageSoundbox()
{
RegisterNetSyncVariableBool("m_PurgeAnsageSoundReady");
m_SoundTimer = new Timer();
m_SoundTimer.Run(60, this, "CheckTimeSoundReady", true);
GetRPCManager().AddRPC( "PurgeAnsageSoundboxMod", "PurgeAnsageSoundboxFunction", this, SingeplayerExecutionType.Client );
}
void CheckTimeSoundReady()
{
int hour, minute, second;
int targetTimeHour = 22;
int targetTimeMinute = 10;
int targetTimeSecond = 0;
GetHourMinuteSecondUTC(hour, minute, second);
if (hour == targetTimeHour && minute == targetTimeMinute && second == targetTimeSecond && !m_PurgeAnsageSoundReady)
{
m_PurgeAnsageSoundReady = true;
SetSynchDirty();
GetNotificationSystem().CreateNotification( "!!!WARNUNG!!!", "Die Säuberung hat begonnen, alle verbrechen einschließlich Mordind für die nächsten 2 Stunden Erlaubt.",
EXPANSION_NOTIFICATION_ICON_GROUP, COLOR_EXPANSION_NOTIFICATION_SUCCSESS, 7, sender )
}
}
void PurgeAnsageSoundboxFunction( CallType type, ref ParamsReadContext ctx, ref PlayerIdentity sender, ref Object target )
{
Param1< string > data;
if ( !ctx.Read( data ) ) return;
if( type == CallType.Server )
{
Print( "Server function called!" );
}
else
{
Print( "Client function called!" );
}
}
override void OnVariablesSynchronized()
{
super.OnVariablesSynchronized();
if (m_PurgeAnsageSoundReady)
{
GetRPCManager().SendRPC
(
"PurgeAnsageSoundboxMod", "PurgeAnsageSoundboxFunction", PlayAllDemEpicSounds();
);
break;
}
}
void PlayAllDemEpicSounds()
{
if (!GetGame().IsServer())
{
EffectSound myEpicSounds = SEffectManager.PlaySound( "PurgeAnsage_SoundSet", GetPosition(), 0, 0, false);
myEpicSounds.SetSoundAutodestroy( true );
}
m_PurgeAnsageSoundReady = false;
SetSynchDirty();
}
};
modded class MissionServer
{
ref PurgeAnsageSoundbox m_PurgeAnsageSoundbox;
void MissionServer()
{
m_PurgeAnsageSoundbox = new ref PurgeAnsageSoundbox();
Print( "PurgeAnsageSoundbox Loaded Server Mission" );
}
};
Alles anzeigen