diff --git a/DayZ-Sa-Tomato/$PREFIX$ b/DayZ-Sa-Tomato/$PREFIX$ deleted file mode 100644 index 6c342f1..0000000 --- a/DayZ-Sa-Tomato/$PREFIX$ +++ /dev/null @@ -1 +0,0 @@ -com\DayZ-SA-Tomato \ No newline at end of file diff --git a/DayZ-Sa-Tomato/$REVISION$ b/DayZ-Sa-Tomato/$REVISION$ deleted file mode 100644 index 56a6051..0000000 --- a/DayZ-Sa-Tomato/$REVISION$ +++ /dev/null @@ -1 +0,0 @@ -1 \ No newline at end of file diff --git a/DayZ-Sa-Tomato/Config/Admins.txt b/DayZ-Sa-Tomato/Config/Admins.txt index f6e81e1..359025e 100644 --- a/DayZ-Sa-Tomato/Config/Admins.txt +++ b/DayZ-Sa-Tomato/Config/Admins.txt @@ -1,3 +1,2 @@ +76561198161388867 76561198017833573 -76561198134309775 -76561198065995341 diff --git a/DayZ-Sa-Tomato/Config/List/TeleportLocation.txt b/DayZ-Sa-Tomato/Config/List/TeleportLocation.txt new file mode 100644 index 0000000..0359209 --- /dev/null +++ b/DayZ-Sa-Tomato/Config/List/TeleportLocation.txt @@ -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 \ No newline at end of file diff --git a/DayZ-Sa-Tomato/Keys/SchnitzelPommes.bikey b/DayZ-Sa-Tomato/Keys/SchnitzelPommes.bikey index 60e4091..24edca7 100644 Binary files a/DayZ-Sa-Tomato/Keys/SchnitzelPommes.bikey and b/DayZ-Sa-Tomato/Keys/SchnitzelPommes.bikey differ diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo index 3b8db23..5622f69 100644 Binary files a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo and b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo differ diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo.SchnitzelPommes.bisign b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo.SchnitzelPommes.bisign index b6e189a..beac6cf 100644 Binary files a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo.SchnitzelPommes.bisign and b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato.pbo.SchnitzelPommes.bisign differ diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$MIKERO$ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$MIKERO$ new file mode 100644 index 0000000..ce31d01 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$MIKERO$ @@ -0,0 +1 @@ +DePbo.dll.6.44 \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$VERSION$ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$VERSION$ new file mode 100644 index 0000000..72e6b05 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/$VERSION$ @@ -0,0 +1 @@ +18121423 \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/PBOPREFIX.txt b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/PBOPREFIX.txt deleted file mode 100644 index e0e0b48..0000000 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/PBOPREFIX.txt +++ /dev/null @@ -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' -//////////// diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.bin b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.bin new file mode 100644 index 0000000..230b7b3 Binary files /dev/null and b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.bin differ diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.cpp b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.cpp deleted file mode 100644 index af6c5bc..0000000 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/config.cpp +++ /dev/null @@ -1,10 +0,0 @@ -class CfgPatches -{ - class DayZSATomato - { - units[]={}; - weapons[]={}; - requiredVersion=0.1; - requiredAddons[]={}; - }; -}; \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionG.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionGameplay.c similarity index 100% rename from DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionG.c rename to DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionGameplay.c diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/CommunityOfflineServer.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionServer.c similarity index 86% rename from DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/CommunityOfflineServer.c rename to DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionServer.c index 1d69297..26d0c35 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/CommunityOfflineServer.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_MissionServer.c @@ -23,21 +23,23 @@ modded class MissionServer { protected bool m_bLoaded; ref DevTeleport devTeleport; - + ref FileHandler fileHandler; ref AdminMenu adminMenu; ref DevCam devCam; - protected float m_LogInTimerLength = 1; + protected float m_LogInTimerLength1 = 1; //admin list PlayerBase Admin = NULL; protected ref map m_AdminList; static ref map m_StaminaList; protected string m_AdminListPath = "$CurrentDir:\\DayZ-SA-Tomato\\Config\\"; + protected string m_AdminListPath2 = "$CurrentDir:\\@DayZ-SA-Tomato\\Config\\"; void MissionServer() { + //super.MissionServer(); Print( "Dayz-Sa-Tomato initialized .." ); m_bLoaded = false; devTeleport = new DevTeleport(); - + fileHandler = new FileHandler(); adminMenu = new AdminMenu(); devCam = new DevCam(); } @@ -77,7 +79,7 @@ modded class MissionServer NewPosition[0] = OldPosition[0] + 1.5; NewPosition[1] = OldPosition[1] + 0.1; 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("ImprovisedSuppressor"); gun.GetInventory().CreateAttachment("GhillieAtt_Tan"); @@ -92,6 +94,8 @@ modded class MissionServer return gun; } + + override void OnEvent(EventType eventTypeId, Param params) { super.OnEvent(eventTypeId,params); @@ -164,7 +168,7 @@ modded class MissionServer vector pos; pos = currentPlayer.GetPosition(); - CLogDebug("CommunityOfflineServer - SendPosTOAdmins1/2() - Name :" + PlayerName + "pos : " + pos); + Print("CommunityOfflineServer - SendPosTOAdmins1/2() - Name :" + PlayerName + "pos : " + pos); //SendPosToAdmins(PlayerName, pos); m_currentPlayer1++; @@ -187,7 +191,7 @@ modded class MissionServer PlayerSteam64ID1 = AdminIdent1.GetPlainId(); if (IsAdmin(AdminPlayerName1, PlayerSteam64ID1 )) { - CLogDebug("CommunityOfflineServer - SendPosTOAdmins2/2() - Name :" + PlayerName + "pos : " + pos); + Print("CommunityOfflineServer - SendPosTOAdmins2/2() - Name :" + PlayerName + "pos : " + pos); ScriptRPC PPos = new ScriptRPC(); PPos.Write(PlayerName); PPos.Write(pos); @@ -218,7 +222,7 @@ modded class MissionServer PlayerIdent = currentPlayer.GetIdentity(); PlayerName = PlayerIdent.GetName(); PlayerSteam64ID = PlayerIdent.GetPlainId(); - CLogDebug("CommunityOfflineServer - SendPlayerListToAdmins() - Name :" + PlayerName + "m_currentPlayer1 : " + m_currentPlayer1); + Print("CommunityOfflineServer - SendPlayerListToAdmins() - Name :" + PlayerName + "m_currentPlayer1 : " + m_currentPlayer1); //SendPosToAdmins(PlayerName, pos); m_currentPlayer1++; @@ -272,19 +276,7 @@ modded class MissionServer - // bool IsAdmin( string name, string ID ) - // { - // array players = new array; - // 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; } 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)) { Admin = currentPlayer; //AdminIdentity = Admin.GetIdentity(); //AdminUID = AdminIdentity.GetPlainId(); - CLogDebug("Returning True for : " + players.Get(i).GetIdentity().GetName() ); + Print("Returning True for : " + players.Get(i).GetIdentity().GetName() ); return Admin; }else { - CLogDebug("Returning False 1" ); + Print("Returning False 1" ); Admin = NULL; } Count ++; @@ -366,6 +358,8 @@ modded class MissionServer m_AdminList = new map; //UID, name m_StaminaList = new map; //UID, name FileHandle AdminUIDSFile = OpenFile(m_AdminListPath + "Admins.txt", FileMode.READ); + FileHandle AdminUIDSFile2 = OpenFile(m_AdminListPath2 + "Admins.txt", FileMode.READ); + if (AdminUIDSFile != 0) { string line_content = ""; @@ -376,6 +370,16 @@ modded class MissionServer } 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() { //Offical DayZ SA weather code - Weather weather = g_Game.GetWeather(); + // Weather weather = g_Game.GetWeather(); - weather.GetOvercast().SetLimits( 0.0 , 2.0 ); - weather.GetRain().SetLimits( 0.0 , 2.0 ); - weather.GetFog().SetLimits( 0.0 , 2.0 ); + // weather.GetOvercast().SetLimits( 0.0 , 2.0 ); + // weather.GetRain().SetLimits( 0.0 , 2.0 ); + // weather.GetFog().SetLimits( 0.0 , 2.0 ); - weather.GetOvercast().SetForecastChangeLimits( 0.0, 0.0 ); - weather.GetRain().SetForecastChangeLimits( 0.0, 0.0 ); - weather.GetFog().SetForecastChangeLimits( 0.0, 0.0 ); + // weather.GetOvercast().SetForecastChangeLimits( 0.0, 0.0 ); + // weather.GetRain().SetForecastChangeLimits( 0.0, 0.0 ); + // weather.GetFog().SetForecastChangeLimits( 0.0, 0.0 ); - weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 ); - weather.GetRain().SetForecastTimeLimits( 600 , 600 ); - weather.GetFog().SetForecastTimeLimits( 600 , 600 ); + // weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 ); + // weather.GetRain().SetForecastTimeLimits( 600 , 600 ); + // weather.GetFog().SetForecastTimeLimits( 600 , 600 ); - weather.GetOvercast().Set( 0.0, 0, 0 ); - weather.GetRain().Set( 0.0, 0, 0 ); - weather.GetFog().Set( 0.0, 0, 0 ); + // weather.GetOvercast().Set( 0.0, 0, 0 ); + // weather.GetRain().Set( 0.0, 0, 0 ); + // weather.GetFog().Set( 0.0, 0, 0 ); - weather.SetWindMaximumSpeed( 50 ); - weather.SetWindFunctionParams( 0, 0, 1 ); + // weather.SetWindMaximumSpeed( 50 ); + // weather.SetWindFunctionParams( 0, 0, 1 ); } override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime) { if (GetHive()) { - queueTime = m_LogInTimerLength; + queueTime = m_LogInTimerLength1; } else { - queueTime = m_LogInTimerLength; + queueTime = m_LogInTimerLength1; } } diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_RPCs.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_RPCs.c index 092f3c2..5fdfb92 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_RPCs.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/M_RPCs.c @@ -61,4 +61,7 @@ enum M_RPCs M_Admin_Menu_Log_Startup = 7039; M_Admin_Menu_Log_RPC = 7040; M_Admin_Menu_Message = 7041; + M_Admin_Menu_Teleport_List_Request = 7042; + M_Admin_Menu_Teleport_List = 7043; + M_Admin_Menu_TpMeToPos = 7044; } diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileHandler.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileHandler.c new file mode 100644 index 0000000..73da04c --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileHandler.c @@ -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); + } + } +} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileReader.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileReader.c new file mode 100644 index 0000000..e84ca7d --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/FileHandeling/FileReader.c @@ -0,0 +1,4 @@ +class FileReader +{ + +} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/StaticFunctions.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/StaticFunctions.c index cecea36..98da41e 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/StaticFunctions.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/StaticFunctions.c @@ -265,7 +265,7 @@ static MissionServer GetServerMission() static ref PlayerBase GetPlayer() { - return GetGame().GetPlayer(); + return PlayerBase.Cast(GetGame().GetPlayer()); } static bool SHIFT() diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenu.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenu.c index 8426c98..85d79b8 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenu.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenu.c @@ -23,6 +23,7 @@ class AdminMenu //extends UIScriptedMenu ref AdminMenuGui m_adMenu; ref AdminMenuGuiMap m_map; + ref AdminMenuManager adminMenuManager; PlayerBase Admin; PlayerIdentity AdminIdentity; string AdminUID; @@ -31,6 +32,7 @@ class AdminMenu //extends UIScriptedMenu void AdminMenu() { GetDayZGame().Event_OnRPC.Insert( this.ReceiveRPC ); + adminMenuManager = new AdminMenuManager(); //adminMenuMain = new AdminMenuMain(); } @@ -95,7 +97,7 @@ class AdminMenu //extends UIScriptedMenu Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); if ( Admin != NULL) { - GetServerMission().CLogDebug(DebugLog); + GetServerMission().Print(DebugLog); } } break; @@ -133,11 +135,11 @@ class AdminMenu //extends UIScriptedMenu case (int)M_RPCs.M_Admin_Menu: 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()); 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(); AdminUID = AdminIdentity.GetPlainId(); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_OK, new Param1( "Test" ), false, AdminIdentity ); @@ -189,7 +191,8 @@ class AdminMenu //extends UIScriptedMenu //obEditor.addObject( oObj ); if ( oObj.IsInherited( ItemBase ) ) { - oItem = ( ItemBase ) oObj; + //oItem = ( ItemBase ) oObj; + oItem = ItemBase.Cast(oObj); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); quantity = 0; @@ -225,7 +228,7 @@ class AdminMenu //extends UIScriptedMenu 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 ); GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Spawn_ItemPrev_ok, new Param1( oObjp ), false, AdminIdentity ); @@ -268,7 +271,7 @@ class AdminMenu //extends UIScriptedMenu oInvItem.SetHealth( oInvItem.GetMaxHealth() ); if ( oInvItem.IsInherited( ItemBase ) ) { - oItem = ( ItemBase ) oObj; + oItem = ItemBase.Cast(oObj); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); quantity = 0; text = Inventory_QuantityItem; @@ -315,12 +318,12 @@ class AdminMenu //extends UIScriptedMenu Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); 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 ); if ( oCursorObj.IsInherited( ItemBase ) ) { - oItem = ( ItemBase ) oCursorObj; + oItem = ItemBase.Cast(oCursorObj); SetupSpawnedItem( oItem, oItem.GetMaxHealth(), 1 ); quantity = 0; @@ -382,7 +385,7 @@ class AdminMenu //extends UIScriptedMenu { for ( int a = 0; a < players.Count(); ++a ) { - selectedPlayer = players.Get(a); + selectedPlayer = PlayerBase.Cast(players.Get(a)); selectedIdentity = selectedPlayer.GetIdentity(); if ( selectedIdentity.GetName() == PlayerName ) { @@ -412,12 +415,12 @@ class AdminMenu //extends UIScriptedMenu vector AdminPos; 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 ) { - PlayerBase Targettpto = playerstptp.Get(it); + PlayerBase Targettpto = PlayerBase.Cast(playerstptp.Get(it)); 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 ) { //PlayerBase Target = players.Get(i); @@ -443,7 +446,7 @@ class AdminMenu //extends UIScriptedMenu // } // selectedPlayer = PlayerBase.Cast(m_Players.Get(Count)); // 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 ) // { // 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() ) { } @@ -513,11 +553,11 @@ class AdminMenu //extends UIScriptedMenu if ( Admin != NULL) { Car MyNiva; - vector position = Admin.GetPosition(); + vector position22 = Admin.GetPosition(); float adminHeading = MiscGameplayFunctions.GetHeadingAngle(Admin); 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("HatchbackTrunk"); MyNiva.GetInventory().CreateAttachment("HatchbackDoors_CoDriver"); @@ -607,36 +647,36 @@ class AdminMenu //extends UIScriptedMenu } break; - case M_RPCs.M_Admin_Menu_TpToPos: - ctx.Read( stringParam ); - cData = stringParam.param1; - if ( GetGame().IsServer() ) - { - Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); - if ( Admin != NULL) - { - vector position3 = "0 0 0"; - m_TPLocations.Find( cData, position3 ); + // case M_RPCs.M_Admin_Menu_TpToPos: + // ctx.Read( stringParam ); + // cData = stringParam.param1; + // if ( GetGame().IsServer() ) + // { + // Admin = GetServerMission().IsAdminID(sender.GetName(), sender.GetPlainId()); + // if ( Admin != NULL) + // { + // vector position3 = "0 0 0"; + // m_TPLocations.Find( cData, position3 ); - vector ofixPlayerPos; - ofixPlayerPos[0] = position3[0]; - ofixPlayerPos[2] = position3[2]; + // vector ofixPlayerPos; + // ofixPlayerPos[0] = position3[0]; + // ofixPlayerPos[2] = position3[2]; - ofixPlayerPos = SnapToGround( ofixPlayerPos ); + // ofixPlayerPos = SnapToGround( ofixPlayerPos ); - Admin.SetPosition(ofixPlayerPos); + // Admin.SetPosition(ofixPlayerPos); - strMessage = "Teleported To Location: " + cData; - Msgparam = new Param1( strMessage ); - GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); + // strMessage = "Teleported To Location: " + cData; + // Msgparam = new Param1( strMessage ); + // GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); - } - } + // } + // } - if ( GetGame().IsClient() && GetGame().IsMultiplayer() ) - { - } - break; + // if ( GetGame().IsClient() && GetGame().IsMultiplayer() ) + // { + // } + // break; case M_RPCs.M_Admin_Menu_Kill: ctx.Read( stringParam ); @@ -648,7 +688,7 @@ class AdminMenu //extends UIScriptedMenu { 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 ) { Target.SetHealth(0); @@ -672,7 +712,7 @@ class AdminMenu //extends UIScriptedMenu { for ( int ig1 = 0; ig1 < players.Count(); ++ig1 ) { - PlayerBase Target1 = players.Get(ig1); + PlayerBase Target1 = PlayerBase.Cast(players.Get(ig1)); Target1.SetHealth(0); } } @@ -693,7 +733,7 @@ class AdminMenu //extends UIScriptedMenu { 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( "","Blood", Admin.GetMaxHealth( "", "Blood" ) ); Target2.GetStatEnergy().Add(250); @@ -718,7 +758,7 @@ class AdminMenu //extends UIScriptedMenu { for ( int ig3 = 0; ig3 < players.Count(); ++ig3 ) { - PlayerBase Target3 = players.Get(ig3); + PlayerBase Target3 = PlayerBase.Cast(players.Get(ig3)); Target3.RemoveAllItems(); } } @@ -802,7 +842,7 @@ class AdminMenu //extends UIScriptedMenu { for ( int z1 = 0; z1 < players.Count(); ++z1 ) { - selectedPlayer = players.Get(z1); + selectedPlayer = PlayerBase.Cast(players.Get(z1)); selectedIdentity = selectedPlayer.GetIdentity(); if ( selectedIdentity.GetName() == MSGName ) { @@ -853,6 +893,22 @@ class AdminMenu //extends UIScriptedMenu } 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: PlayerBase HealthPlayer; @@ -994,7 +1050,7 @@ class AdminMenu //extends UIScriptedMenu for ( int i = 0; i < players.Count(); ++i ) { - PlayerBase Target = players.Get(i); + PlayerBase Target = PlayerBase.Cast(players.Get(i)); Target.SetPosition( AdminPos ); } return i; diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenuManager.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenuManager.c new file mode 100644 index 0000000..c6b1253 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/AdminMenuManager.c @@ -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 . + */ +class AdminMenuManager +{ + + static bool Config_Teleport = false; + static bool Config_Cam = false; + static ref map m_PlayerLocations; + static ref map m_TeleportLocations; + protected string m_TeleportLocationsPath = "$CurrentDir:\\DayZ-Sa-Tomato\\Config\\List\\TeleportLocation.txt"; + void ~AdminMenuManager() + { + + } + + void AdminMenuManager() + { + m_PlayerLocations = new map; + m_TeleportLocations = new map; + //LoadTeleportLocations(); + } + + void Teleport() + { + if (Config_Teleport) + { + GetGame().RPCSingleParam( NULL, M_RPCs.M_TELEPORT, new Param1( 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( 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() + { + + } + +} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevCam.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevCam.c index 8aa3830..5af5b9b 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevCam.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevCam.c @@ -35,7 +35,7 @@ class DevCam { 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; ctx.Read( camParams ); diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevTeleport.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevTeleport.c index eff887a..ddbe2b8 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevTeleport.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/DevTeleport.c @@ -39,7 +39,7 @@ class DevTeleport if ( GetGame().IsServer() ) { - ref PlayerBase player = GetServerMission().GetPlayerFromIdentity( sender ); + ref PlayerBase player = PlayerBase.Cast(GetServerMission().GetPlayerFromIdentity( sender )); // permission check - server mission file // if has permissions send message back to client if ( GetServerMission().IsAdmin( sender.GetName(), sender.GetPlainId()) ) diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuGui.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuGui.c index 1431f64..2c80dc6 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuGui.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuGui.c @@ -24,6 +24,11 @@ class AdminMenuGui extends UIScriptedMenu protected ref AdminMenuGuiSpawn m_SpawnTab; protected ref AdminMenuGuiPlayer m_PlayerTab; 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 m_TestListS; 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_PlayerTab = new AdminMenuGuiPlayer( layoutRoot.FindAnyWidget( "Tab_2" ), 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" ) ); @@ -147,6 +156,13 @@ class AdminMenuGui extends UIScriptedMenu return ok; } + //TeleportTab + if ( w.GetName().Contains("_Teleport_") ) + { + ok = m_TeleportTab.Click(w, x, y, button); + return ok; + } + //CommandTab if ( w.GetName().Contains("_Command_") ) { @@ -193,10 +209,20 @@ class AdminMenuGui extends UIScriptedMenu break; } case 3: + { + m_TeleportTab.Focus(); + break; + } + case 4: { m_MapTab.Focus(); break; } + case 5: + { + m_ConfigTab.Focus(); + break; + } } } diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuManager.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuManager.c deleted file mode 100644 index 9b6a8ef..0000000 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuManager.c +++ /dev/null @@ -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 . - */ -class AdminMenuManager -{ - - static bool Config_Teleport = false; - static bool Config_Cam = false; - static ref map m_PlayerLocations; - - void ~AdminMenuManager() - { - - } - - void AdminMenuManager() - { - m_PlayerLocations = new map; //name of town, pos - } - void Teleport() - { - if (Config_Teleport) - { - GetGame().RPCSingleParam( NULL, M_RPCs.M_TELEPORT, new Param1( 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( GetCursorPos() ), false, NULL ); - } - -} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuPlayer.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuPlayer.c index f5c0965..edf29b1 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuPlayer.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuPlayer.c @@ -112,7 +112,7 @@ class AdminMenuGuiPlayer extends ScriptedWidgetEventHandler if( ( w == m_btn_Player_TpMe ) ) { GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_TpMe, new Param1(PlayerName), false, NULL ); - LogD("AdminMenuPlayer - Click - m_btn_Player_TpMe Playername : " + PlayerName) + LogD("AdminMenuPlayer - Click - m_btn_Player_TpMe Playername : " + PlayerName); return true; } @@ -269,7 +269,7 @@ class AdminMenuGuiPlayer extends ScriptedWidgetEventHandler PlayerIdentity selectedIdentity; for ( int a = 0; a < players.Count(); ++a ) { - selectedPlayer = players.Get(a); + selectedPlayer = PlayerBase.Cast(players.Get(a)); selectedIdentity = selectedPlayer.GetIdentity(); if ( selectedIdentity.GetName() == GetCurrentSelection() ) { diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuSpawn.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuSpawn.c index 0242578..3e08cdd 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuSpawn.c +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuSpawn.c @@ -56,7 +56,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler m_item_widget = ItemPreviewWidget.Cast( m_Root.FindAnyWidget( "ItemPrev" ) ); 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" ); } @@ -108,7 +108,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler } 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(); //RPC Build and Send ScriptRPC rpc = new ScriptRPC(); @@ -220,7 +220,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler if ( w == m_classList ) { 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( GetCurrentSelection() ), false, NULL ); if (item) { @@ -422,7 +422,7 @@ class AdminMenuGuiSpawn extends ScriptedWidgetEventHandler //delete m_item_widget; 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) { diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuTeleport.c b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuTeleport.c new file mode 100644 index 0000000..e7ca0c8 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/AdminMenuTeleport.c @@ -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 . + */ +class AdminMenuGuiTeleport extends ScriptedWidgetEventHandler +{ + protected Widget m_Root; + + + + protected AdminMenuGui m_Menu; + + protected ref map> 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 m_TeleportLocations; + static ref map 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; + m_TeleportLocations_old = new map; + 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(""), false, NULL ); + } + + void LogD(string s) + { + GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Log_Debug, new Param1( 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(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(""), 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(""), 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 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 players = new array; + // 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(selectedPlayer), false, NULL ); + // GetGame().RPCSingleParam( NULL, M_RPCs.M_Admin_Menu_Player_Stamina_Request, new Param1(selectedIdentity.GetName()), false, NULL ); + // } + // } + // } + + void PlayerList() + { + + // m_PlayerList.ClearItems(); + // array players = new array; + // 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( 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, "")); + } + + + +} diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Config.layout b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Config.layout new file mode 100644 index 0000000..bbea010 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Config.layout @@ -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 + } + } + } + } +} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Main.layout b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Main.layout index f5f4d7d..4dae70d 100644 --- a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Main.layout +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Main.layout @@ -24,7 +24,7 @@ FrameWidgetClass settings_menu_root { clipchildren 0 ignorepointer 1 position 80 40 - size 710 60 + size 1350 60 hexactpos 1 vexactpos 1 hexactsize 1 @@ -69,7 +69,7 @@ FrameWidgetClass settings_menu_root { GridSpacerWidgetClass Tab_Control_Container { ignorepointer 1 position 0 0 - size 710 1 + size 1050 1 hexactpos 1 vexactpos 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 { visible 1 clipchildren 1 position 0 0 - size 220 1 + size 170 1 hexactpos 1 vexactpos 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 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 { ignorepointer 1 - position 0.05 40 - size 0.38295 50 + position 0.00178 2.4828 + size 1 37.15 halign right_ref hexactpos 0 vexactpos 1 diff --git a/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Teleport.layout b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Teleport.layout new file mode 100644 index 0000000..edea356 --- /dev/null +++ b/DayZ-Sa-Tomato/addons/DayZ-SA-Tomato/scripts/5_Mission/core/modules/GUI/Layouts/Admin_Teleport.layout @@ -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 + } + } + } + } +} \ No newline at end of file diff --git a/DayZ-Sa-Tomato/mod.cpp b/DayZ-Sa-Tomato/mod.cpp deleted file mode 100644 index 8e38403..0000000 --- a/DayZ-Sa-Tomato/mod.cpp +++ /dev/null @@ -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"}; - }; - } - }; -};