1.0 Update

This commit is contained in:
SchnitzelPommes 2018-12-15 07:46:51 +01:00
parent ddfc4d7e36
commit d27a52a879
31 changed files with 1131 additions and 218 deletions

View File

@ -1 +0,0 @@
com\DayZ-SA-Tomato

View File

@ -1 +0,0 @@
1

View File

@ -1,3 +1,2 @@
76561198161388867
76561198017833573 76561198017833573
76561198134309775
76561198065995341

View File

@ -0,0 +1,15 @@
prison;2651.42 0.0 1395.8
mogilevka;7572.65 0.0 5182.3
stary;6192.39 0.0 7666.5
msta;11206.6 0.0 5398.70
solni;13436.5 0.0 6158.7
cherno;6350.99 0.0 2666.12
elektro;10432.1 0.0 2218.56
berez;12661.4 0.0 9465.03
tisy;1890.45 0.0 13704.6
gorka;9678.94 0.0 8828.93
balota;4546.92 0.0 2416.4
vybor;3916.85 0.0 8795.59
vybora;4107.80 0.0 11205.29
severo;8318.51 0.0 12743.4
severor;7986.21 0.0 12737.1

View File

@ -0,0 +1 @@
DePbo.dll.6.44

View File

@ -0,0 +1 @@
18121423

View File

@ -1,6 +0,0 @@
///'scripts.pbo' from Mikero's dos tools, dll version 5.66///
prefix=com\DayZ-Sa-Tomato
revision=1
Pbo Type is: Arma Unknown pbo typ (no config).
Sha: '5CAF7A50CB0D1CACBB90A6A0DA4EFC47B8998E0D'
//////</HEADER>//////

Binary file not shown.

View File

@ -1,10 +0,0 @@
class CfgPatches
{
class DayZSATomato
{
units[]={};
weapons[]={};
requiredVersion=0.1;
requiredAddons[]={};
};
};

View File

@ -23,21 +23,23 @@ modded class MissionServer
{ {
protected bool m_bLoaded; protected bool m_bLoaded;
ref DevTeleport devTeleport; ref DevTeleport devTeleport;
ref FileHandler fileHandler;
ref AdminMenu adminMenu; ref AdminMenu adminMenu;
ref DevCam devCam; ref DevCam devCam;
protected float m_LogInTimerLength = 1; protected float m_LogInTimerLength1 = 1;
//admin list //admin list
PlayerBase Admin = NULL; PlayerBase Admin = NULL;
protected ref map<string, string> m_AdminList; protected ref map<string, string> m_AdminList;
static ref map<string, string> m_StaminaList; static ref map<string, string> m_StaminaList;
protected string m_AdminListPath = "$CurrentDir:\\DayZ-SA-Tomato\\Config\\"; protected string m_AdminListPath = "$CurrentDir:\\DayZ-SA-Tomato\\Config\\";
protected string m_AdminListPath2 = "$CurrentDir:\\@DayZ-SA-Tomato\\Config\\";
void MissionServer() void MissionServer()
{ {
//super.MissionServer();
Print( "Dayz-Sa-Tomato initialized .." ); Print( "Dayz-Sa-Tomato initialized .." );
m_bLoaded = false; m_bLoaded = false;
devTeleport = new DevTeleport(); devTeleport = new DevTeleport();
fileHandler = new FileHandler();
adminMenu = new AdminMenu(); adminMenu = new AdminMenu();
devCam = new DevCam(); devCam = new DevCam();
} }
@ -77,7 +79,7 @@ modded class MissionServer
NewPosition[0] = OldPosition[0] + 1.5; NewPosition[0] = OldPosition[0] + 1.5;
NewPosition[1] = OldPosition[1] + 0.1; NewPosition[1] = OldPosition[1] + 0.1;
NewPosition[2] = OldPosition[2] + 1.5; NewPosition[2] = OldPosition[2] + 1.5;
EntityAI gun = GetGame().CreateObject( "SVD", NewPosition, false, true ); EntityAI gun = EntityAI.Cast(GetGame().CreateObject( "SVD", NewPosition, false, true ));
gun.GetInventory().CreateAttachment("PSO1Optic"); gun.GetInventory().CreateAttachment("PSO1Optic");
gun.GetInventory().CreateAttachment("ImprovisedSuppressor"); gun.GetInventory().CreateAttachment("ImprovisedSuppressor");
gun.GetInventory().CreateAttachment("GhillieAtt_Tan"); gun.GetInventory().CreateAttachment("GhillieAtt_Tan");
@ -92,6 +94,8 @@ modded class MissionServer
return gun; return gun;
} }
override void OnEvent(EventType eventTypeId, Param params) override void OnEvent(EventType eventTypeId, Param params)
{ {
super.OnEvent(eventTypeId,params); super.OnEvent(eventTypeId,params);
@ -164,7 +168,7 @@ modded class MissionServer
vector pos; vector pos;
pos = currentPlayer.GetPosition(); pos = currentPlayer.GetPosition();
CLogDebug("CommunityOfflineServer - SendPosTOAdmins1/2() - Name :" + PlayerName + "pos : " + pos); Print("CommunityOfflineServer - SendPosTOAdmins1/2() - Name :" + PlayerName + "pos : " + pos);
//SendPosToAdmins(PlayerName, pos); //SendPosToAdmins(PlayerName, pos);
m_currentPlayer1++; m_currentPlayer1++;
@ -187,7 +191,7 @@ modded class MissionServer
PlayerSteam64ID1 = AdminIdent1.GetPlainId(); PlayerSteam64ID1 = AdminIdent1.GetPlainId();
if (IsAdmin(AdminPlayerName1, PlayerSteam64ID1 )) if (IsAdmin(AdminPlayerName1, PlayerSteam64ID1 ))
{ {
CLogDebug("CommunityOfflineServer - SendPosTOAdmins2/2() - Name :" + PlayerName + "pos : " + pos); Print("CommunityOfflineServer - SendPosTOAdmins2/2() - Name :" + PlayerName + "pos : " + pos);
ScriptRPC PPos = new ScriptRPC(); ScriptRPC PPos = new ScriptRPC();
PPos.Write(PlayerName); PPos.Write(PlayerName);
PPos.Write(pos); PPos.Write(pos);
@ -218,7 +222,7 @@ modded class MissionServer
PlayerIdent = currentPlayer.GetIdentity(); PlayerIdent = currentPlayer.GetIdentity();
PlayerName = PlayerIdent.GetName(); PlayerName = PlayerIdent.GetName();
PlayerSteam64ID = PlayerIdent.GetPlainId(); PlayerSteam64ID = PlayerIdent.GetPlainId();
CLogDebug("CommunityOfflineServer - SendPlayerListToAdmins() - Name :" + PlayerName + "m_currentPlayer1 : " + m_currentPlayer1); Print("CommunityOfflineServer - SendPlayerListToAdmins() - Name :" + PlayerName + "m_currentPlayer1 : " + m_currentPlayer1);
//SendPosToAdmins(PlayerName, pos); //SendPosToAdmins(PlayerName, pos);
m_currentPlayer1++; m_currentPlayer1++;
@ -272,19 +276,7 @@ modded class MissionServer
// bool IsAdmin( string name, string ID )
// {
// array<Man> players = new array<Man>;
// GetGame().GetPlayers( players );
// for (int i = 0; i < players.Count(); ++i)
// {
// if (players.Get(i).GetIdentity().GetName() == name && m_AdminList.Contains(ID))
// {
// return true;
// }
// }
// return false;
// }
@ -302,17 +294,17 @@ modded class MissionServer
Count = 0; Count = 0;
} }
PlayerBase currentPlayer = PlayerBase.Cast(m_Players.Get(Count)); PlayerBase currentPlayer = PlayerBase.Cast(m_Players.Get(Count));
CLogDebug("Current Player : " + currentPlayer.GetIdentity().GetName() + "Count : " + Count.ToString()); Print("Current Player : " + currentPlayer.GetIdentity().GetName() + "Count : " + Count.ToString());
if (currentPlayer.GetIdentity().GetName() == name && m_AdminList.Contains(ID)) if (currentPlayer.GetIdentity().GetName() == name && m_AdminList.Contains(ID))
{ {
Admin = currentPlayer; Admin = currentPlayer;
//AdminIdentity = Admin.GetIdentity(); //AdminIdentity = Admin.GetIdentity();
//AdminUID = AdminIdentity.GetPlainId(); //AdminUID = AdminIdentity.GetPlainId();
CLogDebug("Returning True for : " + players.Get(i).GetIdentity().GetName() ); Print("Returning True for : " + players.Get(i).GetIdentity().GetName() );
return Admin; return Admin;
}else }else
{ {
CLogDebug("Returning False 1" ); Print("Returning False 1" );
Admin = NULL; Admin = NULL;
} }
Count ++; Count ++;
@ -366,6 +358,8 @@ modded class MissionServer
m_AdminList = new map<string, string>; //UID, name m_AdminList = new map<string, string>; //UID, name
m_StaminaList = new map<string, string>; //UID, name m_StaminaList = new map<string, string>; //UID, name
FileHandle AdminUIDSFile = OpenFile(m_AdminListPath + "Admins.txt", FileMode.READ); FileHandle AdminUIDSFile = OpenFile(m_AdminListPath + "Admins.txt", FileMode.READ);
FileHandle AdminUIDSFile2 = OpenFile(m_AdminListPath2 + "Admins.txt", FileMode.READ);
if (AdminUIDSFile != 0) if (AdminUIDSFile != 0)
{ {
string line_content = ""; string line_content = "";
@ -376,6 +370,16 @@ modded class MissionServer
} }
CloseFile(AdminUIDSFile); CloseFile(AdminUIDSFile);
} }
if (AdminUIDSFile2 != 0)
{
string line_content2 = "";
while ( FGets(AdminUIDSFile2,line_content2) > 0 )
{
m_AdminList.Insert(line_content2,"null"); //UID , NAME
Print("Adding Admin: "+ line_content2 + " To the Admin List!");
}
CloseFile(AdminUIDSFile2);
}
} }
@ -412,37 +416,37 @@ modded class MissionServer
static void SetupWeather() static void SetupWeather()
{ {
//Offical DayZ SA weather code //Offical DayZ SA weather code
Weather weather = g_Game.GetWeather(); // Weather weather = g_Game.GetWeather();
weather.GetOvercast().SetLimits( 0.0 , 2.0 ); // weather.GetOvercast().SetLimits( 0.0 , 2.0 );
weather.GetRain().SetLimits( 0.0 , 2.0 ); // weather.GetRain().SetLimits( 0.0 , 2.0 );
weather.GetFog().SetLimits( 0.0 , 2.0 ); // weather.GetFog().SetLimits( 0.0 , 2.0 );
weather.GetOvercast().SetForecastChangeLimits( 0.0, 0.0 ); // weather.GetOvercast().SetForecastChangeLimits( 0.0, 0.0 );
weather.GetRain().SetForecastChangeLimits( 0.0, 0.0 ); // weather.GetRain().SetForecastChangeLimits( 0.0, 0.0 );
weather.GetFog().SetForecastChangeLimits( 0.0, 0.0 ); // weather.GetFog().SetForecastChangeLimits( 0.0, 0.0 );
weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 ); // weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 );
weather.GetRain().SetForecastTimeLimits( 600 , 600 ); // weather.GetRain().SetForecastTimeLimits( 600 , 600 );
weather.GetFog().SetForecastTimeLimits( 600 , 600 ); // weather.GetFog().SetForecastTimeLimits( 600 , 600 );
weather.GetOvercast().Set( 0.0, 0, 0 ); // weather.GetOvercast().Set( 0.0, 0, 0 );
weather.GetRain().Set( 0.0, 0, 0 ); // weather.GetRain().Set( 0.0, 0, 0 );
weather.GetFog().Set( 0.0, 0, 0 ); // weather.GetFog().Set( 0.0, 0, 0 );
weather.SetWindMaximumSpeed( 50 ); // weather.SetWindMaximumSpeed( 50 );
weather.SetWindFunctionParams( 0, 0, 1 ); // weather.SetWindFunctionParams( 0, 0, 1 );
} }
override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime) override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)
{ {
if (GetHive()) if (GetHive())
{ {
queueTime = m_LogInTimerLength; queueTime = m_LogInTimerLength1;
} }
else else
{ {
queueTime = m_LogInTimerLength; queueTime = m_LogInTimerLength1;
} }
} }

View File

@ -61,4 +61,7 @@ enum M_RPCs
M_Admin_Menu_Log_Startup = 7039; M_Admin_Menu_Log_Startup = 7039;
M_Admin_Menu_Log_RPC = 7040; M_Admin_Menu_Log_RPC = 7040;
M_Admin_Menu_Message = 7041; M_Admin_Menu_Message = 7041;
M_Admin_Menu_Teleport_List_Request = 7042;
M_Admin_Menu_Teleport_List = 7043;
M_Admin_Menu_TpMeToPos = 7044;
} }

View File

@ -0,0 +1,98 @@
class FileHandler
{
//Main Folder
string MainFolder = "$profile:\\Dayz-Sa-Tomato";
string MainFolderPath = "$profile:\\Dayz-Sa-Tomato\\";
//Config Folder and Files
string ConfigFolder = MainFolderPath + "Config";
string ConfigFolderPath = MainFolderPath + "Config\\";
string ConfigFile = ConfigFolderPath + "Config.txt";
string AdminsFile = ConfigFolderPath + "Admins.txt";
//Customization Folder and Files
string CustomizationFolder = MainFolderPath + "Customization";
string CustomizationFolderPath = MainFolderPath + "Customization\\";
string TeleportFile = CustomizationFolderPath + "Teleport_Locations.txt";
void FileHandler()
{
CheckAndCreateFiles();
}
void CheckAndCreateFiles()
{
CheckFolder(MainFolder);
CheckFolder(ConfigFolder);
CheckFolder(CustomizationFolder);
CheckFile(ConfigFile);
CheckFile(AdminsFile);
CheckFile(TeleportFile);
}
void CheckFile(string File)
{
if(FileExist(File))
{
GetServerMission().Print("FileHandler : File " + File + " found!");
}else
{
FileHandle file = OpenFile(File, FileMode.APPEND);
if (file != 0)
{
FPrintln(file, " ");
CloseFile(file);
}
if(FileExist(File))
{
if(File == TeleportFile)
{
CreateTeleportFile();
}else
{
GetServerMission().Print("FileHandler : File " + File + " Created");
}
}
}
}
void CheckFolder(string Folder)
{
if(FileExist(Folder))
{
GetServerMission().Print("FileHandler : Folder " + Folder + " found!");
}else
{
MakeDirectory(Folder);
if(FileExist(Folder))
{
GetServerMission().Print("FileHandler : Folder " + Folder + " Created");
}
}
}
void CreateTeleportFile()
{
FileHandle file = OpenFile(TeleportFile, FileMode.APPEND);
if (file != 0)
{
FPrintln(file, "prison;2651.42 0.0 1395.8");
FPrintln(file, "mogilevka;7572.65 0.0 5182.3");
FPrintln(file, "stary;6192.39 0.0 7666.5");
FPrintln(file, "msta;11206.6 0.0 5398.70");
FPrintln(file, "solni;13436.5 0.0 6158.7");
FPrintln(file, "cherno;6350.99 0.0 2666.12");
FPrintln(file, "elektro;10432.1 0.0 2218.56");
FPrintln(file, "berez;12661.4 0.0 9465.03");
FPrintln(file, "tisy;1890.45 0.0 13704.6");
FPrintln(file, "gorka;9678.94 0.0 8828.93");
FPrintln(file, "balota;4546.92 0.0 2416.4");
FPrintln(file, "vybor;3916.85 0.0 8795.59");
FPrintln(file, "vybora;4107.80 0.0 11205.29");
FPrintln(file, "severo;8318.51 0.0 12743.4");
FPrintln(file, "severor;7986.21 0.0 12737.1");
CloseFile(file);
}
}
}

View File

@ -0,0 +1,4 @@
class FileReader
{
}

View File

@ -265,7 +265,7 @@ static MissionServer GetServerMission()
static ref PlayerBase GetPlayer() static ref PlayerBase GetPlayer()
{ {
return GetGame().GetPlayer(); return PlayerBase.Cast(GetGame().GetPlayer());
} }
static bool SHIFT() static bool SHIFT()

View File

@ -23,6 +23,7 @@ class AdminMenu //extends UIScriptedMenu
ref AdminMenuGui m_adMenu; ref AdminMenuGui m_adMenu;
ref AdminMenuGuiMap m_map; ref AdminMenuGuiMap m_map;
ref AdminMenuManager adminMenuManager;
PlayerBase Admin; PlayerBase Admin;
PlayerIdentity AdminIdentity; PlayerIdentity AdminIdentity;
string AdminUID; string AdminUID;
@ -31,6 +32,7 @@ class AdminMenu //extends UIScriptedMenu
void AdminMenu() void AdminMenu()
{ {
GetDayZGame().Event_OnRPC.Insert( this.ReceiveRPC ); GetDayZGame().Event_OnRPC.Insert( this.ReceiveRPC );
adminMenuManager = new AdminMenuManager();
//adminMenuMain = new AdminMenuMain(); //adminMenuMain = new AdminMenuMain();
} }
@ -95,7 +97,7 @@ class AdminMenu //extends UIScriptedMenu
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL) if ( Admin != NULL)
{ {
GetServerMission().CLogDebug(DebugLog); GetServerMission().Print(DebugLog);
} }
} }
break; break;
@ -133,11 +135,11 @@ class AdminMenu //extends UIScriptedMenu
case (int)M_RPCs.M_Admin_Menu: case (int)M_RPCs.M_Admin_Menu:
if ( GetGame().IsServer() ) if ( GetGame().IsServer() )
{ {
GetServerMission().CLogDebug("M_RPCs.M_Admin_Menu - RPC Main sender : " + sender.GetName()); GetServerMission().Print("M_RPCs.M_Admin_Menu - RPC Main sender : " + sender.GetName());
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL) if ( Admin != NULL)
{ {
GetServerMission().CLogDebug("M_RPCs.M_Admin_Menu - Is Admin sender : " + sender.GetName() + "Admin name : " + Admin.GetIdentity().GetName()); GetServerMission().Print("M_RPCs.M_Admin_Menu - Is Admin sender : " + sender.GetName() + "Admin name : " + Admin.GetIdentity().GetName());
AdminIdentity = Admin.GetIdentity(); AdminIdentity = Admin.GetIdentity();
AdminUID = AdminIdentity.GetPlainId(); AdminUID = AdminIdentity.GetPlainId();
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_OK, new Param1<string>( "Test" ), false, AdminIdentity ); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_OK, new Param1<string>( "Test" ), false, AdminIdentity );
@ -189,7 +191,8 @@ class AdminMenu //extends UIScriptedMenu
//obEditor.addObject( oObj ); //obEditor.addObject( oObj );
if ( oObj.IsInherited( ItemBase ) ) if ( oObj.IsInherited( ItemBase ) )
{ {
oItem = ( ItemBase ) oObj; //oItem = ( ItemBase ) oObj;
oItem = ItemBase.Cast(oObj);
SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 );
quantity = 0; quantity = 0;
@ -225,7 +228,7 @@ class AdminMenu //extends UIScriptedMenu
if ( Admin != NULL) if ( Admin != NULL)
{ {
EntityAI oObjp = GetGame().CreateObject( ItemPrev_Item, vector.Zero, false, false ); EntityAI oObjp = EntityAI.Cast(GetGame().CreateObject( ItemPrev_Item, vector.Zero, false, false ));
//obEditor.addObject( oObj ); //obEditor.addObject( oObj );
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Spawn_ItemPrev_ok, new Param1<EntityAI>( oObjp ), false, AdminIdentity ); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Spawn_ItemPrev_ok, new Param1<EntityAI>( oObjp ), false, AdminIdentity );
@ -268,7 +271,7 @@ class AdminMenu //extends UIScriptedMenu
oInvItem.SetHealth( oInvItem.GetMaxHealth() ); oInvItem.SetHealth( oInvItem.GetMaxHealth() );
if ( oInvItem.IsInherited( ItemBase ) ) if ( oInvItem.IsInherited( ItemBase ) )
{ {
oItem = ( ItemBase ) oObj; oItem = ItemBase.Cast(oObj);
SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 );
quantity = 0; quantity = 0;
text = Inventory_QuantityItem; text = Inventory_QuantityItem;
@ -315,12 +318,12 @@ class AdminMenu //extends UIScriptedMenu
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL) if ( Admin != NULL)
{ {
EntityAI oCursorObj = GetGame().CreateObject( Cursor_Item, Cursor_Pos, false, ai ); EntityAI oCursorObj = EntityAI.Cast(GetGame().CreateObject( Cursor_Item, Cursor_Pos, false, ai ));
//obEditor.addObject( oCursorObj ); //obEditor.addObject( oCursorObj );
if ( oCursorObj.IsInherited( ItemBase ) ) if ( oCursorObj.IsInherited( ItemBase ) )
{ {
oItem = ( ItemBase ) oCursorObj; oItem = ItemBase.Cast(oCursorObj);
SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 );
quantity = 0; quantity = 0;
@ -382,7 +385,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int a = 0; a < players.Count(); ++a ) for ( int a = 0; a < players.Count(); ++a )
{ {
selectedPlayer = players.Get(a); selectedPlayer = PlayerBase.Cast(players.Get(a));
selectedIdentity = selectedPlayer.GetIdentity(); selectedIdentity = selectedPlayer.GetIdentity();
if ( selectedIdentity.GetName() == PlayerName ) if ( selectedIdentity.GetName() == PlayerName )
{ {
@ -412,12 +415,12 @@ class AdminMenu //extends UIScriptedMenu
vector AdminPos; vector AdminPos;
AdminPos = Admin.GetPosition(); AdminPos = Admin.GetPosition();
GetServerMission().CLogDebug("TPTO Target : " + selectedIdentity.GetName() + " PlayerName : " + PlayerName); GetServerMission().Print("TPTO Target : " + selectedIdentity.GetName() + " PlayerName : " + PlayerName);
for ( int it = 0; it < playerstptp.Count(); ++it ) for ( int it = 0; it < playerstptp.Count(); ++it )
{ {
PlayerBase Targettpto = playerstptp.Get(it); PlayerBase Targettpto = PlayerBase.Cast(playerstptp.Get(it));
selectedIdentity =playerstptp.Get(it).GetIdentity(); selectedIdentity =playerstptp.Get(it).GetIdentity();
GetServerMission().CLogDebug("TPTO Target : " + selectedIdentity.GetName() + " PlayerName : " + PlayerName + " Number :" + it.ToString()); GetServerMission().Print("TPTO Target : " + selectedIdentity.GetName() + " PlayerName : " + PlayerName + " Number :" + it.ToString());
if ( selectedIdentity.GetName() == PlayerName ) if ( selectedIdentity.GetName() == PlayerName )
{ {
//PlayerBase Target = players.Get(i); //PlayerBase Target = players.Get(i);
@ -443,7 +446,7 @@ class AdminMenu //extends UIScriptedMenu
// } // }
// selectedPlayer = PlayerBase.Cast(m_Players.Get(Count)); // selectedPlayer = PlayerBase.Cast(m_Players.Get(Count));
// selectedIdentity = selectedPlayer.GetIdentity(); // selectedIdentity = selectedPlayer.GetIdentity();
// GetServerMission().CLogDebug("Current Player : " + selectedIdentity.GetName() + "TP Player name : " + PlayerName); // GetServerMission().Print("Current Player : " + selectedIdentity.GetName() + "TP Player name : " + PlayerName);
// if ( selectedIdentity.GetName() == PlayerName ) // if ( selectedIdentity.GetName() == PlayerName )
// { // {
// selectedPlayer.SetPosition(Admin.GetPosition()); // selectedPlayer.SetPosition(Admin.GetPosition());
@ -483,6 +486,43 @@ class AdminMenu //extends UIScriptedMenu
} }
} }
if ( GetGame().IsClient() && GetGame().IsMultiplayer() )
{
}
break;
case M_RPCs.M_Admin_Menu_TpMeToPos:
string TpDestination;
ctx.Read( TpDestination );
if ( GetGame().IsServer() )
{
TStringArray strs = new TStringArray;
vector vecTpDestination = TpDestination.ToVector();
TpDestination.Split(" ", strs );
float x = strs.Get(0).ToFloat();
float y = strs.Get(2).ToFloat();
float z = 0.0;
string Vec = "" + strs.Get(0).ToFloat() + "0.0" + strs.Get(2).ToFloat();
//vector ofixPlayerPos = Vector(x, 0.0, y)
//vector ofixPlayerPos = Vector( x, z, y );
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL)
{
//vector position = strs.Get(0) + " 0 " + strs.Get(2);
vector position = TpDestination.ToVector();
vector ofixPlayerPos;
ofixPlayerPos[0] = strs.Get(0).ToFloat();
ofixPlayerPos[2] = strs.Get(2).ToFloat();
ofixPlayerPos = SnapToGround( ofixPlayerPos );
Print("Teleport strs 0 : " + strs.Get(0) + " 1 : " + strs.Get(1) + " 2 : " + strs.Get(2));
Print("Teleport Location ofix full : " + ofixPlayerPos);
Print("Teleport Location ToDestination Pos : " + TpDestination + strs.Get(0) + strs.Get(2));
Admin.SetPosition(ofixPlayerPos);
}
}
if ( GetGame().IsClient() && GetGame().IsMultiplayer() ) if ( GetGame().IsClient() && GetGame().IsMultiplayer() )
{ {
} }
@ -513,11 +553,11 @@ class AdminMenu //extends UIScriptedMenu
if ( Admin != NULL) if ( Admin != NULL)
{ {
Car MyNiva; Car MyNiva;
vector position = Admin.GetPosition(); vector position22 = Admin.GetPosition();
float adminHeading = MiscGameplayFunctions.GetHeadingAngle(Admin); float adminHeading = MiscGameplayFunctions.GetHeadingAngle(Admin);
vector posModifier = Vector(-(3 * Math.Sin(adminHeading)), 0, 3 * Math.Cos(adminHeading)); vector posModifier = Vector(-(3 * Math.Sin(adminHeading)), 0, 3 * Math.Cos(adminHeading));
MyNiva = Car.Cast(GetGame().CreateObject( "OffroadHatchback", position + posModifier, false, true, true )); MyNiva = Car.Cast(GetGame().CreateObject( "OffroadHatchback", position22 + posModifier, false, true, true ));
MyNiva.GetInventory().CreateAttachment("HatchbackHood"); MyNiva.GetInventory().CreateAttachment("HatchbackHood");
MyNiva.GetInventory().CreateAttachment("HatchbackTrunk"); MyNiva.GetInventory().CreateAttachment("HatchbackTrunk");
MyNiva.GetInventory().CreateAttachment("HatchbackDoors_CoDriver"); MyNiva.GetInventory().CreateAttachment("HatchbackDoors_CoDriver");
@ -607,36 +647,36 @@ class AdminMenu //extends UIScriptedMenu
} }
break; break;
case M_RPCs.M_Admin_Menu_TpToPos: // case M_RPCs.M_Admin_Menu_TpToPos:
ctx.Read( stringParam ); // ctx.Read( stringParam );
cData = stringParam.param1; // cData = stringParam.param1;
if ( GetGame().IsServer() ) // if ( GetGame().IsServer() )
{ // {
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); // Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL) // if ( Admin != NULL)
{ // {
vector position3 = "0 0 0"; // vector position3 = "0 0 0";
m_TPLocations.Find( cData, position3 ); // m_TPLocations.Find( cData, position3 );
vector ofixPlayerPos; // vector ofixPlayerPos;
ofixPlayerPos[0] = position3[0]; // ofixPlayerPos[0] = position3[0];
ofixPlayerPos[2] = position3[2]; // ofixPlayerPos[2] = position3[2];
ofixPlayerPos = SnapToGround( ofixPlayerPos ); // ofixPlayerPos = SnapToGround( ofixPlayerPos );
Admin.SetPosition(ofixPlayerPos); // Admin.SetPosition(ofixPlayerPos);
strMessage = "Teleported To Location: " + cData; // strMessage = "Teleported To Location: " + cData;
Msgparam = new Param1<string>( strMessage ); // Msgparam = new Param1<string>( strMessage );
GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); // GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity);
} // }
} // }
if ( GetGame().IsClient() && GetGame().IsMultiplayer() ) // if ( GetGame().IsClient() && GetGame().IsMultiplayer() )
{ // {
} // }
break; // break;
case M_RPCs.M_Admin_Menu_Kill: case M_RPCs.M_Admin_Menu_Kill:
ctx.Read( stringParam ); ctx.Read( stringParam );
@ -648,7 +688,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int ig = 0; ig < players.Count(); ++ig ) for ( int ig = 0; ig < players.Count(); ++ig )
{ {
PlayerBase Target = players.Get(ig); PlayerBase Target = PlayerBase.Cast(players.Get(ig));
if ( Target.GetIdentity().GetName() == PlayerName ) if ( Target.GetIdentity().GetName() == PlayerName )
{ {
Target.SetHealth(0); Target.SetHealth(0);
@ -672,7 +712,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int ig1 = 0; ig1 < players.Count(); ++ig1 ) for ( int ig1 = 0; ig1 < players.Count(); ++ig1 )
{ {
PlayerBase Target1 = players.Get(ig1); PlayerBase Target1 = PlayerBase.Cast(players.Get(ig1));
Target1.SetHealth(0); Target1.SetHealth(0);
} }
} }
@ -693,7 +733,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int ig2 = 0; ig2 < players.Count(); ++ig2 ) for ( int ig2 = 0; ig2 < players.Count(); ++ig2 )
{ {
PlayerBase Target2 = players.Get(ig2); PlayerBase Target2 = PlayerBase.Cast(players.Get(ig2));
Target2.SetHealth( Admin.GetMaxHealth( "", "" ) ); Target2.SetHealth( Admin.GetMaxHealth( "", "" ) );
Target2.SetHealth( "","Blood", Admin.GetMaxHealth( "", "Blood" ) ); Target2.SetHealth( "","Blood", Admin.GetMaxHealth( "", "Blood" ) );
Target2.GetStatEnergy().Add(250); Target2.GetStatEnergy().Add(250);
@ -718,7 +758,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int ig3 = 0; ig3 < players.Count(); ++ig3 ) for ( int ig3 = 0; ig3 < players.Count(); ++ig3 )
{ {
PlayerBase Target3 = players.Get(ig3); PlayerBase Target3 = PlayerBase.Cast(players.Get(ig3));
Target3.RemoveAllItems(); Target3.RemoveAllItems();
} }
} }
@ -802,7 +842,7 @@ class AdminMenu //extends UIScriptedMenu
{ {
for ( int z1 = 0; z1 < players.Count(); ++z1 ) for ( int z1 = 0; z1 < players.Count(); ++z1 )
{ {
selectedPlayer = players.Get(z1); selectedPlayer = PlayerBase.Cast(players.Get(z1));
selectedIdentity = selectedPlayer.GetIdentity(); selectedIdentity = selectedPlayer.GetIdentity();
if ( selectedIdentity.GetName() == MSGName ) if ( selectedIdentity.GetName() == MSGName )
{ {
@ -853,6 +893,22 @@ class AdminMenu //extends UIScriptedMenu
} }
break; break;
case M_RPCs.M_Admin_Menu_Teleport_List_Request:
if ( GetGame().IsServer() )
{
Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId());
if ( Admin != NULL)
{
adminMenuManager.LoadTeleportLocations(AdminIdentity);;
}
}
if ( GetGame().IsClient() && GetGame().IsMultiplayer() )
{
}
break;
case M_RPCs.M_Admin_Menu_Player_Health_Request: case M_RPCs.M_Admin_Menu_Player_Health_Request:
PlayerBase HealthPlayer; PlayerBase HealthPlayer;
@ -994,7 +1050,7 @@ class AdminMenu //extends UIScriptedMenu
for ( int i = 0; i < players.Count(); ++i ) for ( int i = 0; i < players.Count(); ++i )
{ {
PlayerBase Target = players.Get(i); PlayerBase Target = PlayerBase.Cast(players.Get(i));
Target.SetPosition( AdminPos ); Target.SetPosition( AdminPos );
} }
return i; return i;

View File

@ -0,0 +1,130 @@
/*
DayZ SA Tomato Gui Admin tool for DayZ Standalone. Contact DayZ-SA-Tomato@Primary-Network.de
Copyright (C) 2018 DayZ-SA-Tomato
This file is part of DayZ SA Tomato.
DayZ SA Tomato 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, either version 3 of the License, or
(at your option) any later version.
DayZ SA Tomato 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 DayZ SA Tomato. If not, see <https://www.gnu.org/licenses/>.
*/
class AdminMenuManager
{
static bool Config_Teleport = false;
static bool Config_Cam = false;
static ref map<string, vector> m_PlayerLocations;
static ref map<int, string> m_TeleportLocations;
protected string m_TeleportLocationsPath = "$CurrentDir:\\DayZ-Sa-Tomato\\Config\\List\\TeleportLocation.txt";
void ~AdminMenuManager()
{
}
void AdminMenuManager()
{
m_PlayerLocations = new map<string, vector>;
m_TeleportLocations = new map<int, string>;
//LoadTeleportLocations();
}
void Teleport()
{
if (Config_Teleport)
{
GetGame().RPCSingleParam( NULL, M_RPCs.M_TELEPORT, new Param1<vector>( GetCursorPos() ), false, NULL );
}
}
void CamTeleport( bool isSpectating, vector toPos )
{
if (Config_Cam)
{
Print("Send Cam RPC");
GetGame().RPCSingleParam( NULL, M_RPCs.M_SET_CAM, new Param2< bool, vector >( isSpectating, toPos ), false, NULL );
}
}
void MenuOpen()
{
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu, new Param1<vector>( GetCursorPos() ), false, NULL );
}
void SendTeleportList(PlayerIdentity admin)
{
string save;
string a =";";
vector v;
ScriptRPC TList = new ScriptRPC();
TList.Write(m_TeleportLocations);
TList.Send(NULL, M_RPCs.M_Admin_Menu_Teleport_List, false, admin);
// for (int i = 0; i < m_TeleportLocations.Count(); ++i)
// {
// TStringArray strs = new TStringArray;
// save = m_TeleportLocations.GetElement(i);
// save.Split(a, strs );
// v = strs.Get(1).ToVector();
// string Lname = strs.Get(0);
// Print("SendTeleportList Number : " + i + " Name : " + Lname + "Pos : " + strs.Get(1).ToVector());
// ScriptRPC TList = new ScriptRPC();
// TList.Write(Lname);
// TList.Write(v);
// TList.Send(NULL, M_RPCs.M_Admin_Menu_Teleport_List, false, admin);
//}
}
void LoadTeleportLocations(PlayerIdentity admin)
{
m_TeleportLocations.Clear();
FileHandle TpList = OpenFile(m_TeleportLocationsPath, FileMode.READ);
if (TpList != 0)
{
string a =";";
int i = 0;
string line_content = "";
while ( FGets(TpList,line_content) > 0 )
{
TStringArray strs = new TStringArray;
//string.Split(line_content, a, strs );
//line_content.Split(";", strs)
//vector v = strs.Get(1).ToVector();
m_TeleportLocations.Insert(i,line_content); //int Name, posvector
Print("Adding Number : " + i + " line : " + line_content + " To the Teleport List!");
i++;
}
CloseFile(TpList);
SendTeleportList(admin);
}
Print("TpList = NULL");
}
void AddTeleportLocations()
{
}
}

View File

@ -35,7 +35,7 @@ class DevCam
{ {
Print( " receive rpc dev cam is server"); Print( " receive rpc dev cam is server");
ref PlayerBase player = GetServerMission().GetPlayerFromIdentity( sender ); ref PlayerBase player = PlayerBase.Cast(GetServerMission().GetPlayerFromIdentity( sender ));
Param2< bool, vector > camParams; Param2< bool, vector > camParams;
ctx.Read( camParams ); ctx.Read( camParams );

View File

@ -39,7 +39,7 @@ class DevTeleport
if ( GetGame().IsServer() ) if ( GetGame().IsServer() )
{ {
ref PlayerBase player = GetServerMission().GetPlayerFromIdentity( sender ); ref PlayerBase player = PlayerBase.Cast(GetServerMission().GetPlayerFromIdentity( sender ));
// permission check - server mission file // permission check - server mission file
// if has permissions send message back to client // if has permissions send message back to client
if ( GetServerMission().IsAdmin( sender.GetName(), sender.GetPlainId()) ) if ( GetServerMission().IsAdmin( sender.GetName(), sender.GetPlainId()) )

View File

@ -24,6 +24,11 @@ class AdminMenuGui extends UIScriptedMenu
protected ref AdminMenuGuiSpawn m_SpawnTab; protected ref AdminMenuGuiSpawn m_SpawnTab;
protected ref AdminMenuGuiPlayer m_PlayerTab; protected ref AdminMenuGuiPlayer m_PlayerTab;
protected ref AdminMenuGuiMap m_MapTab; protected ref AdminMenuGuiMap m_MapTab;
protected ref AdminMenuGuiTeleport m_TeleportTab;
protected ref AdminMenuGuiTeleport m_ConfigTab;
protected ref AdminMenuGuiTeleport m_todo;
protected ref AdminMenuGuiTeleport m_todo2;
protected ref map<string, string> m_TestListS; protected ref map<string, string> m_TestListS;
protected string m_TestListPath = "$CurrentDir:\\DayZ-SA-Tomato\\"; protected string m_TestListPath = "$CurrentDir:\\DayZ-SA-Tomato\\";
@ -104,6 +109,10 @@ class AdminMenuGui extends UIScriptedMenu
m_SpawnTab = new AdminMenuGuiSpawn( layoutRoot.FindAnyWidget( "Tab_1" ), this ); m_SpawnTab = new AdminMenuGuiSpawn( layoutRoot.FindAnyWidget( "Tab_1" ), this );
m_PlayerTab = new AdminMenuGuiPlayer( layoutRoot.FindAnyWidget( "Tab_2" ), this ); m_PlayerTab = new AdminMenuGuiPlayer( layoutRoot.FindAnyWidget( "Tab_2" ), this );
m_MapTab = new AdminMenuGuiMap( layoutRoot.FindAnyWidget( "Tab_3" ), this ); m_MapTab = new AdminMenuGuiMap( layoutRoot.FindAnyWidget( "Tab_3" ), this );
m_TeleportTab = new AdminMenuGuiTeleport( layoutRoot.FindAnyWidget( "Tab_4" ), this );
m_ConfigTab = new AdminMenuGuiTeleport( layoutRoot.FindAnyWidget( "Tab_5" ), this );
m_todo = new AdminMenuGuiTeleport( layoutRoot.FindAnyWidget( "Tab_5" ), this );
m_todo2 = new AdminMenuGuiTeleport( layoutRoot.FindAnyWidget( "Tab_5" ), this );
m_Back = ButtonWidget.Cast( layoutRoot.FindAnyWidget( "back" ) ); m_Back = ButtonWidget.Cast( layoutRoot.FindAnyWidget( "back" ) );
@ -147,6 +156,13 @@ class AdminMenuGui extends UIScriptedMenu
return ok; return ok;
} }
//TeleportTab
if ( w.GetName().Contains("_Teleport_") )
{
ok = m_TeleportTab.Click(w, x, y, button);
return ok;
}
//CommandTab //CommandTab
if ( w.GetName().Contains("_Command_") ) if ( w.GetName().Contains("_Command_") )
{ {
@ -193,10 +209,20 @@ class AdminMenuGui extends UIScriptedMenu
break; break;
} }
case 3: case 3:
{
m_TeleportTab.Focus();
break;
}
case 4:
{ {
m_MapTab.Focus(); m_MapTab.Focus();
break; break;
} }
case 5:
{
m_ConfigTab.Focus();
break;
}
} }
} }

View File

@ -1,58 +0,0 @@
/*
DayZ SA Tomato Gui Admin tool for DayZ Standalone. Contact DayZ-SA-Tomato@Primary-Network.de
Copyright (C) 2018 DayZ-SA-Tomato
This file is part of DayZ SA Tomato.
DayZ SA Tomato 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, either version 3 of the License, or
(at your option) any later version.
DayZ SA Tomato 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 DayZ SA Tomato. If not, see <https://www.gnu.org/licenses/>.
*/
class AdminMenuManager
{
static bool Config_Teleport = false;
static bool Config_Cam = false;
static ref map<string, vector> m_PlayerLocations;
void ~AdminMenuManager()
{
}
void AdminMenuManager()
{
m_PlayerLocations = new map<string, vector>; //name of town, pos
}
void Teleport()
{
if (Config_Teleport)
{
GetGame().RPCSingleParam( NULL, M_RPCs.M_TELEPORT, new Param1<vector>( GetCursorPos() ), false, NULL );
}
}
void CamTeleport( bool isSpectating, vector toPos )
{
if (Config_Cam)
{
Print("Send Cam RPC");
GetGame().RPCSingleParam( NULL, M_RPCs.M_SET_CAM, new Param2< bool, vector >( isSpectating, toPos ), false, NULL );
}
}
void MenuOpen()
{
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu, new Param1<vector>( GetCursorPos() ), false, NULL );
}
}

View File

@ -112,7 +112,7 @@ class AdminMenuGuiPlayer extends ScriptedWidgetEventHandler
if( ( w == m_btn_Player_TpMe ) ) if( ( w == m_btn_Player_TpMe ) )
{ {
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_TpMe, new Param1<string>(PlayerName), false, NULL ); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_TpMe, new Param1<string>(PlayerName), false, NULL );
LogD("AdminMenuPlayer - Click - m_btn_Player_TpMe Playername : " + PlayerName) LogD("AdminMenuPlayer - Click - m_btn_Player_TpMe Playername : " + PlayerName);
return true; return true;
} }
@ -269,7 +269,7 @@ class AdminMenuGuiPlayer extends ScriptedWidgetEventHandler
PlayerIdentity selectedIdentity; PlayerIdentity selectedIdentity;
for ( int a = 0; a < players.Count(); ++a ) for ( int a = 0; a < players.Count(); ++a )
{ {
selectedPlayer = players.Get(a); selectedPlayer = PlayerBase.Cast(players.Get(a));
selectedIdentity = selectedPlayer.GetIdentity(); selectedIdentity = selectedPlayer.GetIdentity();
if ( selectedIdentity.GetName() == GetCurrentSelection() ) if ( selectedIdentity.GetName() == GetCurrentSelection() )
{ {

View File

@ -56,7 +56,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler
m_item_widget = ItemPreviewWidget.Cast( m_Root.FindAnyWidget( "ItemPrev" ) ); m_item_widget = ItemPreviewWidget.Cast( m_Root.FindAnyWidget( "ItemPrev" ) );
m_Spawn_QuantityItem = EditBoxWidget.Cast( m_Root.FindAnyWidget( "quantity_items" ) ); m_Spawn_QuantityItem = EditBoxWidget.Cast( m_Root.FindAnyWidget( "quantity_items" ) );
m_Spawn_editBox = m_Root.FindAnyWidget("className_spawner_box"); m_Spawn_editBox = EditBoxWidget.Cast( m_Root.FindAnyWidget("className_spawner_box") );
UpdateList( "All" ); UpdateList( "All" );
} }
@ -108,7 +108,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler
} }
else if ( w == m_Spawn_btnSpawnGround ) else if ( w == m_Spawn_btnSpawnGround )
{ {
EntityAI oObj = g_Game.CreateObject( strSelection, GetGame().GetPlayer().GetPosition(), false, ai ); EntityAI oObj = EntityAI.Cast(g_Game.CreateObject( strSelection, GetGame().GetPlayer().GetPosition(), false, ai ));
text = m_Spawn_QuantityItem.GetText(); text = m_Spawn_QuantityItem.GetText();
//RPC Build and Send //RPC Build and Send
ScriptRPC rpc = new ScriptRPC(); ScriptRPC rpc = new ScriptRPC();
@ -220,7 +220,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler
if ( w == m_classList ) if ( w == m_classList )
{ {
EntityAI item; EntityAI item;
item = g_Game.CreateObject( GetCurrentSelection(), vector.Zero, false, false, false ); item = EntityAI.Cast(g_Game.CreateObject( GetCurrentSelection(), vector.Zero, false, false, false ));
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Spawn_ItemPrev, new Param1<string>( GetCurrentSelection() ), false, NULL ); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Spawn_ItemPrev, new Param1<string>( GetCurrentSelection() ), false, NULL );
if (item) if (item)
{ {
@ -422,7 +422,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler
//delete m_item_widget; //delete m_item_widget;
if (item == NULL) if (item == NULL)
{ {
item = GetGame().CreateObject( "WaterBottle", vector.Zero, false, false ); item = EntityAI.Cast(GetGame().CreateObject( "WaterBottle", vector.Zero, false, false ));
} }
if (!m_item_widget) if (!m_item_widget)
{ {

View File

@ -0,0 +1,231 @@
/*
DayZ SA Tomato Gui Admin tool for DayZ Standalone. Contact DayZ-SA-Tomato@Primary-Network.de
Copyright (C) 2018 DayZ-SA-Tomato
This file is part of DayZ SA Tomato.
DayZ SA Tomato 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, either version 3 of the License, or
(at your option) any later version.
DayZ SA Tomato 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 DayZ SA Tomato. If not, see <https://www.gnu.org/licenses/>.
*/
class AdminMenuGuiTeleport extends ScriptedWidgetEventHandler
{
protected Widget m_Root;
protected AdminMenuGui m_Menu;
protected ref map<int, ref Param2<string, string>> m_TextMap;
protected ButtonWidget m_btn_Teleport_Teleport;
protected ButtonWidget m_btn_Teleport_Reload;
protected ButtonWidget m_btn_Teleport_Add_Location;
ref AdminMenuManager adminMenuManager;
protected EditBoxWidget m_Text_Teleport_Loacation_Name;
static ref map<string, string> m_TeleportLocations;
static ref map<int, string> m_TeleportLocations_old;
TextListboxWidget m_List_Teleport_Location;
void AdminMenuGuiTeleport( Widget parent, AdminMenuGui menu )
{
m_Root = GetGame().GetWorkspace().CreateWidgets( "com\\DayZ-SA-Tomato\\scripts\\5_Mission\\core\\modules\\GUI\\Layouts\\Admin_Teleport.layout", parent );
adminMenuManager = new AdminMenuManager();
m_Menu = menu;
GetDayZGame().Event_OnRPC.Insert( this.ReceiveRPC );
m_TeleportLocations = new map<string, string>;
m_TeleportLocations_old = new map<int, string>;
m_List_Teleport_Location = TextListboxWidget.Cast( m_Root.FindAnyWidget( "List_Teleport_Location" ) );
m_Text_Teleport_Loacation_Name = EditBoxWidget.Cast( m_Root.FindAnyWidget( "Text_Teleport_Loacation_Name" ) );
m_btn_Teleport_Teleport = ButtonWidget.Cast( m_Root.FindAnyWidget( "btn_Teleport_Teleport" ) );
m_btn_Teleport_Reload = ButtonWidget.Cast( m_Root.FindAnyWidget( "btn_Teleport_Reload" ) );
m_btn_Teleport_Add_Location = ButtonWidget.Cast( m_Root.FindAnyWidget( "btn_Teleport_Add_Location" ) );
m_List_Teleport_Location.ClearItems();
//TpLocations;
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Teleport_List_Request, new Param1<string>(""), false, NULL );
}
void LogD(string s)
{
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Log_Debug, new Param1<string>( s ), false, NULL );
}
bool Click(Widget w, int x, int y, int button)
{
PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
string TpLocation = GetCurrentSelection();
if (player)
{
if( ( w == m_btn_Teleport_Teleport ) )
{
string TpDest;
m_TeleportLocations.Find(TpLocation, TpDest);
Print("TpLocation : " + TpLocation + " Tp Dest : " + TpDest);
//GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_TpMeToPos, new Param1<string>(TpDest.ToString()), false, NULL );
ScriptRPC TListDst = new ScriptRPC();
TListDst.Write(TpDest);
TListDst.Send(NULL, M_RPCs.M_Admin_Menu_TpMeToPos, false, NULL);
return true;
}
if( ( w == m_btn_Teleport_Reload ) )
{
m_TeleportLocations.Clear();
m_List_Teleport_Location.ClearItems();
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Teleport_List_Request, new Param1<string>(""), false, NULL );
}
if( ( w == m_btn_Teleport_Add_Location ) )
{
m_List_Teleport_Location.ClearItems();
GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Teleport_List_Request, new Param1<string>(""), false, NULL );
}
}
return true;
}
void ~AdminMenuGuiTeleport()
{
m_List_Teleport_Location.ClearItems();
}
void Focus()
{
}
void AddLocationToFile(string LocationName)
{
}
override bool OnFocus( Widget w, int x, int y )
{
if( m_Menu )
m_Menu.OnFocus( w, x, y );
if( w )
{
Param2<string, string> p = m_TextMap.Get( w.GetUserID() );
if( p )
{
return true;
}
}
return ( w != null );
}
bool stop = false;
void ReceiveRPC( PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx )
{
int ListCount = 0;
switch(rpc_type)
{
case M_RPCs.M_Admin_Menu_Teleport_List:
string PosName;
vector Pos1; //Vector Postition
// ctx.Read(PosName);
// ctx.Read(Pos1);
ctx.Read(m_TeleportLocations_old);
//ctx.Read(m_TeleportLocations);
if ( GetGame().IsServer() )
{
}
if ( GetGame().IsClient() && GetGame().IsMultiplayer() )
{
for (int i = 0; i < m_TeleportLocations_old.Count(); ++i)
{
ListCount ++;
string save;
string a =";";
vector v;
TStringArray strs = new TStringArray;
save = m_TeleportLocations_old.GetElement(i);
save.Split(a, strs );
v = strs.Get(1).ToVector();
string Lname = strs.Get(0);
if (m_TeleportLocations.Contains(Lname))
{
return;
}
m_TeleportLocations.Insert(Lname, strs.Get(1)); //int Name, posvector
m_List_Teleport_Location.AddItem( Lname, NULL, 0 );
Print("SendTeleportList Number : " + i + " Name : " + Lname + "Pos : " + strs.Get(1));
}
// Print("Adding : PosName : " + PosName + " Pos1 : " + Pos1);
// m_TeleportLocations.Insert(PosName, Pos1); //int Name, posvector
// m_List_Teleport_Location.AddItem( PosName, NULL, 0 );
}
break;
}
}
// void PlayerSelect()
// {
// array<Man> players = new array<Man>;
// GetGame().GetPlayers( players );
// PlayerBase selectedPlayer;
// PlayerIdentity selectedIdentity;
// for ( int a = 0; a < players.Count(); ++a )
// {
// selectedPlayer = players.Get(a);
// selectedIdentity = selectedPlayer.GetIdentity();
// if ( selectedIdentity.GetName() == GetCurrentSelection() )
// {
// GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Player_Health_Request, new Param1<PlayerBase>(selectedPlayer), false, NULL );
// GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Player_Stamina_Request, new Param1<string>(selectedIdentity.GetName()), false, NULL );
// }
// }
// }
void PlayerList()
{
// m_PlayerList.ClearItems();
// array<Man> players = new array<Man>;
// GetGame().GetPlayers( players );
// for (int i = 0; i < players.Count(); ++i)
// {
// string msg = "AdminMenuPlayer - PlayerList() Adding " + players.Get(i).GetIdentity().GetName() + " To List";
// GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Log_Info, new Param1<string>( msg ), false, NULL );
// m_PlayerList.AddItem( players.Get(i).GetIdentity().GetName(), NULL, 0 );
// }
}
string GetCurrentSelection()
{
if ( m_List_Teleport_Location.GetSelectedRow() != -1 )
{
string result;
m_List_Teleport_Location.GetItemText( m_List_Teleport_Location.GetSelectedRow(), 0, result );
return result;
}
return "";
}
void Message( string txt )
{
GetGame().GetMission().OnEvent(ChatMessageEventTypeID, new ChatMessageEventParams(0, "", txt, ""));
}
}

View File

@ -0,0 +1,97 @@
FrameWidgetClass rootFrame {
position 10 10
size 1400 800
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
{
FrameWidgetClass command_settings_root {
ignorepointer 1
size 1 1
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
{
TextWidgetClass TextWidget0 {
position 0 10
size 1 50
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 1
style Bold
text "Config"
"exact text" 0
"size to text h" 0
"size to text v" 0
"text halign" center
"text valign" center
}
PanelWidgetClass PanelWidget0 {
color 0.9333 0 0.0784 1
position 0 75
size 0.9 3.5
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 1
style rover_sim_colorable
}
ButtonWidgetClass btn_Config_Refresh_Admin {
position 1100 150
size 256.392 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Refresh Admins"
text_proportion 0.8
}
TextWidgetClass TextWidget2 {
position 40 90
size 167.963 49.9234
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Admins"
}
ButtonWidgetClass btn_Config_Add_Admin {
position 800 150
size 256.38998 50
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Add Steam64ID"
text_proportion 0.9
switch normal
}
PanelWidgetClass PanelWidget1 {
color 0.9333 0 0.0784 1
position 0 223.85101
size 0.9 3.5
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 1
style rover_sim_colorable
}
EditBoxWidgetClass Text_Config_Admin_ID {
position 40 150
size 734.37097 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
style ServerBrowser
}
}
}
}
}

View File

@ -24,7 +24,7 @@ FrameWidgetClass settings_menu_root {
clipchildren 0 clipchildren 0
ignorepointer 1 ignorepointer 1
position 80 40 position 80 40
size 710 60 size 1350 60
hexactpos 1 hexactpos 1
vexactpos 1 vexactpos 1
hexactsize 1 hexactsize 1
@ -69,7 +69,7 @@ FrameWidgetClass settings_menu_root {
GridSpacerWidgetClass Tab_Control_Container { GridSpacerWidgetClass Tab_Control_Container {
ignorepointer 1 ignorepointer 1
position 0 0 position 0 0
size 710 1 size 1050 1
hexactpos 1 hexactpos 1
vexactpos 1 vexactpos 1
hexactsize 1 hexactsize 1
@ -251,11 +251,68 @@ FrameWidgetClass settings_menu_root {
} }
} }
} }
PanelWidgetClass Tab_Control_4 {
visible 1
clipchildren 1
position 0 0
size 170 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
priority 200
userID 0
style blank
"no focus" 1
"next down" "XComboBoxWidget1"
{
TextWidgetClass Tab_Control_1_Title0 {
visible 1
ignorepointer 1
position 0 0
size 1 0.48
halign center_ref
valign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
priority 250
text "Teleport"
font "gui/fonts/sdf_MetronLight72"
"text halign" center
"text valign" center
}
ImageWidgetClass Tab_Control_1_Background0 {
visible 0
disabled 0
inheritalpha 0
ignorepointer 1
color 1 1 1 0.7843
position -160 0
size 710 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
draggable 0
imageTexture "{5A89D58DD2276E85}Gui/textures/SerratedBlack2.edds"
mode blend
"src alpha" 1
"no wrap" 0
stretch 1
"flip u" 0
"flip v" 0
filter 1
nocache 0
}
}
}
PanelWidgetClass Tab_Control_3 { PanelWidgetClass Tab_Control_3 {
visible 1 visible 1
clipchildren 1 clipchildren 1
position 0 0 position 0 0
size 220 1 size 170 1
hexactpos 1 hexactpos 1
vexactpos 1 vexactpos 1
hexactsize 1 hexactsize 1
@ -308,6 +365,177 @@ FrameWidgetClass settings_menu_root {
} }
} }
} }
PanelWidgetClass Tab_Control_5 {
visible 1
clipchildren 1
position 0 0
size 170 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
priority 200
userID 0
style blank
"no focus" 1
"next down" "XComboBoxWidget1"
{
TextWidgetClass Tab_Control_1_Title1 {
visible 1
ignorepointer 1
position 0 0
size 1 0.48
halign center_ref
valign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
priority 250
text "Config"
font "gui/fonts/sdf_MetronLight72"
"text halign" center
"text valign" center
}
ImageWidgetClass Tab_Control_1_Background1 {
visible 0
disabled 0
inheritalpha 0
ignorepointer 1
color 1 1 1 0.7843
position -160 0
size 710 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
draggable 0
imageTexture "{5A89D58DD2276E85}Gui/textures/SerratedBlack2.edds"
mode blend
"src alpha" 1
"no wrap" 0
stretch 1
"flip u" 0
"flip v" 0
filter 1
nocache 0
}
}
}
PanelWidgetClass Tab_Control_6 {
visible 0
clipchildren 1
position 0 0
size 170 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
priority 200
userID 0
style blank
"no focus" 1
"next down" "XComboBoxWidget1"
{
TextWidgetClass Tab_Control_1_Title2 {
visible 1
ignorepointer 1
position 0 0
size 1 0.48
halign center_ref
valign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
priority 250
text "Config"
font "gui/fonts/sdf_MetronLight72"
"text halign" center
"text valign" center
}
ImageWidgetClass Tab_Control_1_Background2 {
visible 0
disabled 0
inheritalpha 0
ignorepointer 1
color 1 1 1 0.7843
position -160 0
size 710 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
draggable 0
imageTexture "{5A89D58DD2276E85}Gui/textures/SerratedBlack2.edds"
mode blend
"src alpha" 1
"no wrap" 0
stretch 1
"flip u" 0
"flip v" 0
filter 1
nocache 0
}
}
}
PanelWidgetClass Tab_Control_7 {
visible 0
clipchildren 1
position 0 0
size 170 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
priority 200
userID 0
style blank
"no focus" 1
"next down" "XComboBoxWidget1"
{
TextWidgetClass Tab_Control_1_Title3 {
visible 1
ignorepointer 1
position 0 0
size 1 0.48
halign center_ref
valign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
priority 250
text "Config"
font "gui/fonts/sdf_MetronLight72"
"text halign" center
"text valign" center
}
ImageWidgetClass Tab_Control_1_Background3 {
visible 0
disabled 0
inheritalpha 0
ignorepointer 1
color 1 1 1 0.7843
position -160 0
size 710 1
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 0
draggable 0
imageTexture "{5A89D58DD2276E85}Gui/textures/SerratedBlack2.edds"
mode blend
"src alpha" 1
"no wrap" 0
stretch 1
"flip u" 0
"flip v" 0
filter 1
nocache 0
}
}
}
} }
} }
} }
@ -407,12 +635,34 @@ FrameWidgetClass settings_menu_root {
hexactsize 1 hexactsize 1
vexactsize 1 vexactsize 1
} }
FrameWidgetClass Tab_4 {
visible 0
ignorepointer 1
position 0 110
size 1400 800
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
}
FrameWidgetClass Tab_5 {
visible 0
ignorepointer 1
position 0 110
size 1400 800
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
}
} }
} }
TextWidgetClass SettingsTextWidget { TextWidgetClass SettingsTextWidget {
ignorepointer 1 ignorepointer 1
position 0.05 40 position 0.00178 2.4828
size 0.38295 50 size 1 37.15
halign right_ref halign right_ref
hexactpos 0 hexactpos 0
vexactpos 1 vexactpos 1

View File

@ -0,0 +1,115 @@
FrameWidgetClass rootFrame {
position 10 10
size 1400 800
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
{
FrameWidgetClass command_settings_root {
ignorepointer 1
size 1 1
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 0
{
TextWidgetClass TextWidget0 {
position 0 10
size 1 50
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 1
style Bold
text "Teleport"
"exact text" 0
"size to text h" 0
"size to text v" 0
"text halign" center
"text valign" center
}
PanelWidgetClass PanelWidget0 {
color 0.9333 0 0.0784 1
position 0 75
size 0.9 3.5
halign center_ref
hexactpos 1
vexactpos 1
hexactsize 0
vexactsize 1
style rover_sim_colorable
}
PanelWidgetClass PanelWidget1 {
visible 0
position 20 160
size 400 570
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
style rover_sim_black_2
}
TextListboxWidgetClass List_Teleport_Location {
position 26.6539 160
size 386.76901 570
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
style Editor
lines 20
}
ButtonWidgetClass btn_Teleport_Add_Location {
position 450 680.46002
size 430 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Add Current Location"
}
ButtonWidgetClass btn_Teleport_Teleport {
position 450 160
size 431.70602 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Teleport to Location"
}
ButtonWidgetClass btn_Teleport_Reload {
position 20 740
size 403.58899 45
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Reload Locations from File"
}
EditBoxWidgetClass Text_Teleport_Loacation_Name {
position 904.15796 680
size 430 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
style ServerBrowser
text "Location_Name"
}
TextWidgetClass TextWidget1 {
position 20 100
size 400 48
hexactpos 1
vexactpos 1
hexactsize 1
vexactsize 1
text "Locations"
"text halign" center
"text valign" center
}
}
}
}
}

View File

@ -1,41 +0,0 @@
class CfgMods
{
class DayZSATomato
{
dir = "DayZ-SA-Tomato";
picture = "";
action = "";
hideName = 1;
hidePicture = 1;
name = "DayZ-SA-Tomato";
credits = "";
author = "DayZ-SA-Tomato";
authorID = "0";
version = "1.0";
extra = 0;
type = "mod";
dependencies[] = {"Game", "World", "Mission"};
class defs
{
class gameScriptModule
{
value = "";
files[] = {"com/DayZ-SA-Tomato/scripts/3_Game"};
};
class worldScriptModule
{
value = "";
files[] = {"com/DayZ-SA-Tomato/scripts/4_World"};
};
class missionScriptModule
{
value = "";
files[] = {"com/DayZ-SA-Tomato/scripts/5_Mission"};
};
}
};
};