История изменений
Исправление Obezyan, (текущая версия) :
А как там будет такой модуль выглядеть?
Могу ошибиться немного в синтаксисе, давно не писал на них:
В UE объявление вот такое примерно
UFUNCTION(Server, unreliable, WithValidation)
FText GetServerTime_Interact();
UFUNCTION(Client, unreliable)
FText GetClientTime();
Реализация такая
FText ACharacter::GetServerTime_Implementation()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
bool ACharacter::GetServerTime_Validate()
{
return true;
}
FText ACharacter::GetClientTime()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
Вызов уже банальный
void ACharacter::OnButtonPressed() {
FText serverTime = GetServerTime();
FText clientTime = GetClientTime();
UE_LOG(LogTemp, Warning, TEXT("Время на сервере: %s"), *serverTime);
UE_LOG(LogTemp, Warning, TEXT("Время на клиенте: %s"), *clientTime);
}
На SQF это это будет:
Get_Time = {
if (isServer) {
SERVERDATE = format ["%1 %2 %3", (date select 0), (date select 1), (date select 2)];
publicVariableClient "SERVERDATE";
};
if (isClient && hasInterface) {
_clientDate = format ["%1 %2 %3", (date select 0), (date select 1), (date select 2)];
hint _clientDate;
hint SERVERDATE;
};
};
remoteExec ["Get_Time", 0]; // 0 - вызов и на сервере и на клиенте, 2 - вызов на сервере, 3,4,5 итд вызов на подключенных клиентах в том числе безголовых
Исправление Obezyan, :
А как там будет такой модуль выглядеть?
Могу ошибиться немного в синтаксисе, давно не писал на них:
В UE объявление вот такое примерно
UFUNCTION(Server, unreliable, WithValidation)
FText GetServerTime_Interact();
UFUNCTION(Client, unreliable)
FText GetClientTime();
Реализация такая
FText ACharacter::GetServerTime_Implementation()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
bool ACharacter::GetServerTime_Validate()
{
return true;
}
FText ACharacter::GetClientTime()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
Вызов уже банальный
void ACharacter::OnButtonPressed() {
FText serverTime = GetServerTime();
FText clientTime = GetClientTime();
UE_LOG(LogTemp, Warning, TEXT("Время на сервере: %s"), *serverTime);
UE_LOG(LogTemp, Warning, TEXT("Время на клиенте: %s"), *clientTime);
}
На SQF это это будет:
Get_Time = {
if (isServer) {
SERVERDATE = format ["%1 %2 %3", (date select 0), (date select 1), (date select 2)];
publicVariableClient "SERVERDATE";
};
if (isClient && hasInterface) {
_clientDate = format ["%1 %2 %3", (date select 0), (date select 1), (date select 2)];
hint _clientDate;
hint SERVERDATE;
};
};
remoteExec ["Get_Time", 0]; // 0 - вызов и на сервере и на клиенте, 2 - вызов на сервере, 3,4,5 итд вызов на подключенных клиентах в том числе безголовых
Исходная версия Obezyan, :
А как там будет такой модуль выглядеть?
Могу ошибиться немного в синтаксисе, давно не писал на них:
В UE объявление вот такое примерно
UFUNCTION(Server, unreliable, WithValidation)
FText GetServerTime_Interact();
UFUNCTION(Client, unreliable)
FText GetClientTime();
Реализация такая
FText ACharacter::GetServerTime_Implementation()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
bool ACharacter::GetServerTime_Validate()
{
return true;
}
FText ACharacter::GetClientTime()
{
FDateTime CurrentDateTime = FDateTime::Now();
FText TimeStamp = FText::AsDateTime(CurrentDateTime, EDateTimeStyle::Short, EDateTimeStyle::Medium);
return TimeStamp;
}
Вызов уже банальный
void ACharacter::OnButtonPressed() {
FText serverTime = GetServerTime();
FText clientTime = GetClientTime();
UE_LOG(LogTemp, Warning, TEXT("Время на сервере: %s"), *serverTime);
UE_LOG(LogTemp, Warning, TEXT("Время на клиенте: %s"), *clientTime);
}
На SQF это это будет:
Get_Time = {
if (isServer) {
SERVERDATE = (date select 0) + " " + (date select 1) + " " + (date select 2);
publicVariableClient "SERVERDATE";
};
if (isClient && hasInterface) {
_clientDate = (date select 0) + " " + (date select 1) + " " + (date select 2);
hint _clientDate;
hint SERVERDATE;
};
};
remoteExec ["Get_Time", 0]; // 0 - вызов и на сервере и на клиенте, 2 - вызов на сервере, 3,4,5 итд вызов на подключенных клиентах в том числе безголовых