Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
Таблица лидеров
Популярные публикации
Отображаются публикации с наибольшей репутацией на 11/27/18 в Сообщения
-
4 баллаАдминка в игре с графическим интерфейсом. GitHub: https://github.com/SchnitzelPommes/DayZ-SA-Tomato DayZ-SA-Tomato-master.zip
-
1 баллВ данной теме опубликую скриптик, который уже давно лежит на форуме в разделе помощи. Установка: 1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c 2. В самом начале файла добавляем: #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Correct_InGame_time.c" И после строки weather.SetWindFunctionParams(0, 0, 0); добавляем: GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(Correct_InGame_time, 1000, true); где 1000 - 1 секунда 3. Создаем вручную файл с именем "Correct_InGame_time.c" и заполняем его следующим текстом: static void Correct_InGame_time() { private int year, month, day, hour, minute; GetGame().GetWorld().GetDate( year, month, day, hour, minute ); if (hour < 7) { GetGame().GetWorld().SetDate(year, month, day, 7, 3); } if (hour >= 20) { GetGame().GetWorld().SetDate(year, month, (day + 1), 7, 3); } } 4. Настраиваем файл как нам нужно. Т.е. как видим, с 7 утра и до 8 вечера время на сервере внутриигровое не трогается, при наступлении от 20:00 и до 7 утра у нес автопромотка на 7:03 утра идет. Тупо, банально, дешево, но работает.
-
1 баллС внесением изменений на клиент не интересно
-
1 балл
[Dayz 0.63] Миссия и Админка в игре
XpeHoboyKa отреагировал на
123new за сообщение в теме
На основе админки по ссылке Github из шапки темы: Моя мини-админка без всяких наворотов и годмодов на текущую чистую steam-версию сервера игры. Это пакет минимум" (с вырезанной частью функций). Установка: 1. Открыть 'mpmissions\dayzOffline.chernarusplus\init.c' и добавить в самом начале файла 1 строкой #include "$CurrentDir:\mpmissions\dayzOffline.chernarusplus\Scripts\AdminTool\AdminTool_functions.c" ref AdminTool_PlugIn AdminTool = new AdminTool_PlugIn(); 2. Найти в классе 'CustomMission: MissionServer' и добавить: override void OnInit() { AdminTool.Init(); //Call for admin tool scripts } Если есть функция 'OnInit()', то добавить в ее конец код: AdminTool.Init(); //Call for admin tool scripts Пример: Затем ниже в теле этого же класса добавляем функцию (если есть уже, заменяем или дописываем недостающее) override void OnEvent(EventType eventTypeId, Param params) { super.OnEvent(eventTypeId,params); switch(eventTypeId) { case ChatMessageEventTypeID: ChatMessageEventParams chat_params = ChatMessageEventParams.Cast(params); if (chat_params.param1 == 0 && chat_params.param2 != "") //trigger only when channel is Global == 0 and Player Name does not equal to null { Param4<int,string,string,string> request_info = new Param4<int,string,string,string>(chat_params.param1, chat_params.param2, chat_params.param3, chat_params.param4); AdminTool.RequestHandler(request_info); //Send the param to Admintools } break; } } 3. Создаем в 'mpmissions\dayzOffline.chernarusplus' папку 'Scripts', а в ней папку 'AdminTool'. 4. Создаем файл с именем и расширением 'AdminTool_functions.c' и заполняем его следующим содержимым typedef Param4<int, string, string, string> AdminChatParams; class AdminTool_PlugIn { protected string Dir_Locations_Configs = "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Scripts\\AdminTool\\"; protected string FileName_AdminList = "Admins.txt"; protected string FileName_TPLocationsList = "Locations_TP.txt"; protected bool Enable_check_nickNames_Admin = false; protected ref map<string, string> m_AdminList; protected ref map<string, vector> m_TPLocations; protected ref map<string, int> m_ExtendedCommands; protected bool m_FreeCamera; protected bool m_IsDebugRunning = false; protected PlayerBase Admin; protected PlayerIdentity identityT; protected string PlayerUID; protected string GUID; void Init() { Print("AdminTool:: Init():: Loading AdminTool Mods..."); m_AdminList = new map<string, string>; //UID, name m_TPLocations = new map<string, vector>; //name of town, pos m_ExtendedCommands = new map<string,int>; //Command, length string line_content = ""; array<string> temp_massive = new array<string>; //-----Add Admins from txt----- FileHandle AdminUIDSFile = OpenFile(Dir_Locations_Configs + FileName_AdminList,FileMode.READ); if (AdminUIDSFile != 0) { line_content = ""; while ( FGets(AdminUIDSFile,line_content) > 0 ) { if (line_content.Contains("|")) { temp_massive.Clear(); line_content.Split( "|", temp_massive ); private string Getted_UID_PL = temp_massive.Get(0); private string Getted_Name_PL = "null"; if (Enable_check_nickNames_Admin) { Getted_Name_PL = temp_massive.Get(1); m_AdminList.Insert(Getted_UID_PL,Getted_Name_PL); //UID , NAME Print("Adding Admin: "+ Getted_Name_PL + "(uid=" + Getted_UID_PL + ") To the Admin List!"); } else { m_AdminList.Insert(Getted_UID_PL,Getted_Name_PL); //UID , NAME Print("Adding Admin: "+ Getted_UID_PL + " To the Admin List!"); } temp_massive.Clear(); } } CloseFile(AdminUIDSFile); } FileHandle TPLocsFile = OpenFile(Dir_Locations_Configs + FileName_TPLocationsList,FileMode.READ); if (TPLocsFile != 0) { line_content = ""; while ( FGets(TPLocsFile,line_content) > 0 ) { if ((line_content.Contains("|")) && (line_content.Contains(" "))) { temp_massive.Clear(); line_content.Split( "|", temp_massive ); private string Getted_Namne_Location = temp_massive.Get(0); private string Getted_Coord_Location = temp_massive.Get(1); m_TPLocations.Insert(Getted_Namne_Location,Getted_Coord_Location.ToVector()); //UID , NAME Print("Adding Location: "+ Getted_Namne_Location + "(" + Getted_Coord_Location + ") To the TP Locations List!"); } } CloseFile(TPLocsFile); } //Init Commands m_ExtendedCommands.Insert("/readcfg",8); m_ExtendedCommands.Insert("/strip",6); m_ExtendedCommands.Insert("/tpm",5); m_ExtendedCommands.Insert("/tpp",4); m_ExtendedCommands.Insert("/tpto",5); m_ExtendedCommands.Insert("/spi",4); m_ExtendedCommands.Insert("/spg",4); m_ExtendedCommands.Insert("/tpc",4); //Sub commands m_ExtendedCommands.Insert("/ammo",1); m_ExtendedCommands.Insert("/stamina",1); m_ExtendedCommands.Insert("/LoadoutType",1); m_ExtendedCommands.Insert("/CustomLoadouts",1); m_ExtendedCommands.Insert("/SpawnArmed",1); m_ExtendedCommands.Insert("/freecam",1); m_ExtendedCommands.Insert("/debug",1); m_ExtendedCommands.Insert("/nighttime",1); m_ExtendedCommands.Insert("/daytime",1); m_ExtendedCommands.Insert("/godmode",1); m_ExtendedCommands.Insert("/heal",1); m_ExtendedCommands.Insert("/kill",1); m_ExtendedCommands.Insert("/tpalltome",1); m_ExtendedCommands.Insert("/killall",1); m_ExtendedCommands.Insert("/spawncar",1); } int TeleportAllPlayersTo(PlayerBase Admin) { array<Man> players = new array<Man>; GetGame().GetPlayers( players ); vector AdminPos; AdminPos = Admin.GetPosition(); for ( int i = 0; i < players.Count(); ++i ) { PlayerBase Target = players.Get(i); Target.SetPosition( AdminPos ); } return i; } void oSpawnItemFunc(bool ground, PlayerBase player, string ClassName) { EntityAI item; ItemBase itemBs vector NewPosition; vector OldPosition; if (ground) { OldPosition = player.GetPosition(); NewPosition[0] = OldPosition[0] + 1.5; NewPosition[1] = OldPosition[1] + 0.1; NewPosition[2] = OldPosition[2] + 1.5; item = GetGame().CreateObject( ClassName, NewPosition, false, true ); }else{ item = player.GetInventory().CreateInInventory( ClassName ); itemBs = ItemBase.Cast(item); itemBs.SetQuantity(1); } } vector SnapToGround(vector pos) { float pos_x = pos[0]; float pos_z = pos[2]; float pos_y = GetGame().SurfaceY( pos_x, pos_z ); vector tmp_pos = Vector( pos_x, pos_y, pos_z ); tmp_pos[1] = tmp_pos[1] + pos[1]; return tmp_pos; } ref array<string> CheckCommand(string CommandLine) { ref array<string> ret = new array<string>; string strRplce,mKey; int cmdLength; strRplce = CommandLine; for (int i = 0; i < m_ExtendedCommands.Count(); ++i) { mKey = m_ExtendedCommands.GetKey(i); cmdLength = m_ExtendedCommands.Get(mKey); if (CommandLine.Contains(mKey)) { strRplce.Replace(mKey + " ",""); ret.Insert(mKey); //0 = Command 1 = Data if (strRplce != "") { ret.Insert(strRplce); } return ret; } } return NULL; } //--------------------------------------------------------------------------------- void RequestHandler( Param request_info ) { AdminChatParams chat_params = AdminChatParams.Cast(request_info); if (chat_params) { array<Man> players = new array<Man>; GetGame().GetPlayers( players ); PlayerBase Admin; PlayerIdentity AdminIdentity; string AdminUID; PlayerBase selectedPlayer; PlayerIdentity selectedIdentity; string selectedUID; string chatLine = chat_params.param3; string strMessage; Param1<string> Msgparam; for (int i = 0; i < players.Count(); ++i) { private string temp_name_pl = players.Get(i).GetIdentity().GetName(); if (!Enable_check_nickNames_Admin) { temp_name_pl = players.Get(i).GetIdentity().GetPlainId(); } if (players.Get(i).GetIdentity().GetName() == chat_params.param2 && m_AdminList.Contains(players.Get(i).GetIdentity().GetPlainId()) && m_AdminList.Contains(temp_name_pl)) { Admin = players.Get(i); AdminIdentity = Admin.GetIdentity(); AdminUID = AdminIdentity.GetPlainId(); } } if (Admin && AdminUID != "") { if (chatLine.Contains("/")) { ref array<string> chatData = CheckCommand(chatLine); string cCommand, cData; if (chatData != NULL) { cCommand = chatData.Get(0); cData = chatData.Get(1); } else { cCommand = "UnknownCommand" } Run_Command(cCommand,cData,players,selectedPlayer,selectedIdentity,selectedUID,Admin,AdminIdentity,AdminUID); } } } } ///////////////////// void Run_Command(string cCommand,string cData,array<Man> players,PlayerBase selectedPlayer,PlayerIdentity selectedIdentity,string selectedUID,PlayerBase Admin,PlayerIdentity AdminIdentity, string AdminUID) { string strMessage; Param1<string> Msgparam; switch(cCommand) { case "/readcfg": { Init(); Msgparam = new Param1<string>( "Configs Readed Again!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/strip": { for ( int a = 0; a < players.Count(); ++a ) { selectedPlayer = players.Get(a); selectedIdentity = selectedPlayer.GetIdentity(); if ( selectedIdentity.GetName() == cData ) { selectedPlayer.RemoveAllItems(); Msgparam = new Param1<string>( "Player "+cData +" Stripped!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } } break; } case "/tpm": { for ( int zm = 0; zm < players.Count(); ++zm ) { if ( players.Get(zm).GetIdentity().GetName() == cData ) { Admin.SetPosition(players.Get(zm).GetPosition()); strMessage = "You were teleported to player " + cData; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } } break; { case "/tpp": { for ( int z = 0; z < players.Count(); ++z ) { selectedPlayer = players.Get(z); selectedIdentity = selectedPlayer.GetIdentity(); if ( selectedIdentity.GetName() == cData ) { selectedPlayer.SetPosition(Admin.GetPosition()); Msgparam = new Param1<string>( "You were teleported by the admin!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, selectedIdentity); strMessage = "Player " + cData + " was teleported to your location!"; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } } break; } case "/tpto": { vector position = "0 0 0"; if (m_TPLocations.Contains(cData)) { m_TPLocations.Find( cData, position ); vector ofixPlayerPos; ofixPlayerPos[0] = position[0]; ofixPlayerPos[2] = position[2]; ofixPlayerPos = SnapToGround( ofixPlayerPos ); Admin.SetPosition(ofixPlayerPos); strMessage = "Teleported To Location: " + cData; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } else { strMessage = "Teleport Failed! Location: " + cData + " Is not on the list!"; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } case "/spi": { oSpawnItemFunc(false,Admin,cData); strMessage = "Admin Commands: Item " + cData + " Added in Inventory!"; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/spg": { oSpawnItemFunc(true,Admin,cData); strMessage = "Admin Commands: Item " + cData + " Spawned around you!"; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/tpc": { vector tpPos = cData.ToVector(); vector fixPlayerPos; fixPlayerPos[0] = tpPos[0]; fixPlayerPos[2] = tpPos[2]; fixPlayerPos = SnapToGround( fixPlayerPos ); Admin.SetPosition(fixPlayerPos); strMessage = "Teleported to:: " + tpPos; Msgparam = new Param1<string>( strMessage ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/ammo": { EntityAI CurrentWeapon = Admin.GetHumanInventory().GetEntityInHands(); if( CurrentWeapon ) { CurrentWeapon.SetHealth( CurrentWeapon.GetMaxHealth( "", "" ) ); Magazine foundMag = ( Magazine ) CurrentWeapon.GetAttachmentByConfigTypeName( "DefaultMagazine" ); if( foundMag && foundMag.IsMagazine()) { foundMag.ServerSetAmmoMax(); } Object Suppressor = ( Object ) CurrentWeapon.GetAttachmentByConfigTypeName( "SuppressorBase" ); if( Suppressor ) { Suppressor.SetHealth( Suppressor.GetMaxHealth( "", "" ) ); } string displayName = CurrentWeapon.ConfigGetString("displayName"); Msgparam = new Param1<string>( "Weapon " + displayName + "Reloaded and Repaired" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } case "/freecam": { PlayerBase pBody = Admin; if (m_FreeCamera) { GetGame().SelectPlayer(Admin.GetIdentity(), pBody); m_FreeCamera = false; Msgparam = new Param1<string>( "Exiting FreeCam!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } else { GetGame().SelectPlayer(Admin.GetIdentity(), NULL); GetGame().SelectSpectator(Admin.GetIdentity(), "freedebugcamera", Admin.GetPosition()); m_FreeCamera = true; Msgparam = new Param1<string>( "FreeCam Spawned!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } case "/debug": { if (m_IsDebugRunning) { Msgparam = new Param1<string>( "DeBug Monitor (Status Monitor) Disabled!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); GetGame().SetDebugMonitorEnabled(0); m_IsDebugRunning = false; } else { Msgparam = new Param1<string>( "DeBug Monitor (Status Monitor) Enabled!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); GetGame().SetDebugMonitorEnabled(1); m_IsDebugRunning = true; } break; } case "/nighttime": { GetGame().GetWorld().SetDate( 1988, 9, 23, 22, 0 ); Msgparam = new Param1<string>( "NIGHT TIME!!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/daytime": { GetGame().GetWorld().SetDate( 1988, 5, 23, 12, 0 ); Msgparam = new Param1<string>( "DAY TIME!!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } /*case "/godmode": { string GmodeCheck; GUID = AdminUID; g_Game.GetProfileString("SafeZoneStatus"+GUID,GmodeCheck); if (GmodeCheck == "true") { g_Game.SetProfileString("SafeZoneStatus"+GUID,"false"); Msgparam = new Param1<string>( "God Mode DISABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } else { g_Game.SetProfileString("SafeZoneStatus"+GUID,"true"); Msgparam = new Param1<string>( "God Mode ENABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } */ case "/heal": { Msgparam = new Param1<string>( "Player Healed!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); Admin.SetHealth( Admin.GetMaxHealth( "", "" ) ); Admin.SetHealth( "","Blood", Admin.GetMaxHealth( "", "Blood" ) ); break; } case "/kill": { Admin.SetHealth(0); break; } case "/tpalltome": { int tpCount = TeleportAllPlayersTo(Admin); string msgc = "All " + tpCount.ToString() + " Players Teleported to my POS!"; Msgparam = new Param1<string>( msgc ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } case "/killall": { for ( int ig = 0; ig < players.Count(); ++ig ) { PlayerBase Target = players.Get(ig); if ( Target.GetIdentity() != AdminIdentity ) { Target.SetHealth(0); } } break; } case "/spawncar": { EntityAI MyV3S; vector NewPosition; vector OldPosition; OldPosition = Admin.GetPosition(); NewPosition[0] = OldPosition[0] + 1.5; NewPosition[1] = OldPosition[1] + 0.2; NewPosition[2] = OldPosition[2] + 1.5; MyV3S = GetGame().CreateObject( "OffroadHatchback", NewPosition, false, true, true ); MyV3S.GetInventory().CreateAttachment("HatchbackHood"); MyV3S.GetInventory().CreateAttachment("HatchbackTrunk"); MyV3S.GetInventory().CreateAttachment("HatchbackDoors_CoDriver"); MyV3S.GetInventory().CreateAttachment("HatchbackWheel"); MyV3S.GetInventory().CreateAttachment("HatchbackWheel"); MyV3S.GetInventory().CreateAttachment("HatchbackWheel"); MyV3S.GetInventory().CreateAttachment("HatchbackWheel"); MyV3S.GetInventory().CreateAttachment("SparkPlug"); MyV3S.GetInventory().CreateAttachment("EngineBelt"); MyV3S.GetInventory().CreateAttachment("CarBattery"); auto carfluids = Car.Cast( MyV3S ); carfluids.Fill( CarFluid.FUEL, 1000 ); carfluids.Fill( CarFluid.OIL, 1000 ); carfluids.Fill( CarFluid.BRAKE, 1000 ); carfluids.Fill( CarFluid.COOLANT, 1000 ); break; break; } default: { Msgparam = new Param1<string>( "Error: The following command is Unknown." ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); break; } } } } или поместить готовый файл AdminTool_functions.c 5. Рядом с файлом разместить 2 следующих файла: Admins.txt Locations_TP.txt Заполнять их аналогично примеру. Папку чтения этих файлов можно сменить, см ниже. 6. В строках protected string Dir_Locations_Configs = "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Scripts\\AdminTool\\"; protected string FileName_AdminList = "Admins.txt"; protected string FileName_TPLocationsList = "Locations_TP.txt"; protected bool Enable_check_nickNames_Admin = false; Написаны мини-настроечки. 'Dir_Locations_Configs' - папка расположения 2-х текстовых файлов с вашими настройками. Это может быть относительный путь, как в примере, либо абсолютный путь, например protected string Dir_Locations_Configs = "C:\\DayZ_Server\\AdminTool\\"; В 'FileName_AdminList' и 'FileName_TPLocationsList' соответственно указаны имена файлов с настройками UID и локаций для телепорта. Примеры файлов выше были даны. В 'Enable_check_nickNames_Admin' параметр точной проверки ника к добавленному UID в файл с админами. 'true' - включен, 'false' - выключен. 7. Запускаем сервер и радуемся. Авторизуемся через '#login {пароль админа сервера}' в чате и используем команды. Для совсем уж рукожопов, миссия сервера с админкой: dayzOffline.chernarusplus.rar P.S. Команды видны всем игрокам! P.P.S. Список комманд вынесет в функции Init класса админки, а их действия внизу файла в отдельной функции для простоты добавления своих комманд и их редактирования. Ну и для желающих годмод, так сказать мини-дополнение: 1. Ставим все как и выше. 2. Распаковываем в корень сервера папку из архива: ModdedScripts.rar 3. В параметры запуска сервера добавляем -mod=ModdedScripts 4. В файле 'AdminTool_functions.c' меняем /*case "/godmode": { string GmodeCheck; GUID = AdminUID; g_Game.GetProfileString("SafeZoneStatus"+GUID,GmodeCheck); if (GmodeCheck == "true") { g_Game.SetProfileString("SafeZoneStatus"+GUID,"false"); Msgparam = new Param1<string>( "God Mode DISABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } else { g_Game.SetProfileString("SafeZoneStatus"+GUID,"true"); Msgparam = new Param1<string>( "God Mode ENABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } */ на case "/godmode": { string GmodeCheck; GUID = AdminUID; g_Game.GetProfileString("GodModeEnabledFor:"+GUID,GmodeCheck); if (GmodeCheck == "true") { g_Game.SetProfileString("GodModeEnabledFor:"+GUID,"false"); Msgparam = new Param1<string>( "God Mode DISABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } else { g_Game.SetProfileString("GodModeEnabledFor:"+GUID,"true"); Msgparam = new Param1<string>( "God Mode ENABLED!" ); GetGame().RPCSingleParam(Admin, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, AdminIdentity); } break; } P.S. Если у вас в корне сервера лежала папка scripts и она читалась сервером, после этого она может перестать считываться! -
1 баллПожарка - Land_City_FireStation Диспетчерская с СЗ - Land_Mil_ATC_Small ------- (2 вида) ---- Land_Mil_ATC_Big 5 этажей - Land_Tenement_small 9 этажей - Land_Tenement_Big Шпиль Land_Tower_TC2_Base Land_Tower_TC2_Mid Land_Tower_TC2_Top
-
1 баллсмотри https://dayz.gamepedia.com/ATC_Tower объект называется Land_Mil_ATC_Big а как я это понял? открываем фотку. а там написано Land_Mil_ATC_Big
-
1 баллadler14k ACTPA Всежтаки богемцы дблблд
-
1 баллAltair потому как функция Correct_InGame_time будет выполняться в вашем случае не каждую 1 секунду, а каждые 30 минут. А что в этой функции посмотреть не догадались? Ну так посмотрите что вы выполняете каждые 30 минут то. Само течение времени от этой функции не зависит от слова вообще никак, для нее, если верить оф. конфигу сервера с оф. документации предусмотрен параметр акселерации времени (множитель ускорения 'скорости течения времени в игре') на сервере в значениях от 0 до 24.
-
Рассылка
