Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 09/20/19 в Сообщения

  1. 2 балла
    BorizzK

    Кровоточат персонажи на серве

    Taiga irkutsk38 Причина в следующем На стороне сервера регится сетевая переменная для синхронизации На клиенте не регится или регится не там или регится криво Тк от сервера клиенту летит поток бит и обратно то же - там все строго в определенном порядке Каждая переменная (точнее ее значение) имеет смещение в потоке в зависимости от порядка их регистрации Тк в модах и тп они регятся в одних и тех же местах - порядок не нарушается и одинаков с обеих сторон Но стоит зарегить переменные для клиента и сервера в разных местах (например в условии проверки типа if (GetGame().IsClent()) на клиенте а на сервере в if (GetGame().IsServer())) смещения могут быть разными и значение этой сетевой переменной может прилетать в совсем другую переменную на клиенте или сервере Про кровоток - тк IsBleeding булево - то она 1 бит - 0 false, 1 true - на ее место например прилетает другая со значением 1 или этот бит явлется куском другой - и персонаж кровоточит - но тк BleedingBits не установлен на сервере - то кровь не уходит В большинстве случаев это происходит по причине - народ взял клиент-серверный мод и запулил его только на сервере как серверный не отрезав клиентскую часть и не убрав регистрацию сетевых переменных Прямой пример - MedicalAttention либо любая админка которую на серверу подключили и у админов то же, а у других клиентов нет или отключена проверка сигнатур на сервере и на клиенте какой-то мод не взлетел - а мод этот регит сетевые переменные на сервере порядок потока данных нарушается и начинается свистопляска ЗЫ Если криво обходться с RPC - то глюков может быть на порядки больше Потому надо внимательно следить за такими вещами надеюсь доходчиво обьяснил... сорри за сумбур
  2. 2 балла
    elanc

    Спав лута в вещах.

    Мда.. Ох уж эти новоиспеченные «администраторы-программисты».. Голова только для того, чтобы есть в неё.. EntityAI itemEnt; — вот вы определили переменную с именем itemEnt и типом EntityAI EntityAI itemIn; — вот еще одну того же типа ItemBase itemBs; — вот вы определили переменную с именем itemBS и типом ItemBase Дальше интереснее: EntityAI item... — тут вы определяете ещё одну переменную типа EntityAI с именем item = player.GetInventory().CreateInInventory( "CombatBoots_Green"); — и задаете ей значение, которое возвращает метод CreateInInventory() На данный момент мы получаем 4 переменных, три из которых не инициализированы, т.е.: в item у нас находится «адрес» созданных нами ботинок, а в itemEnt, itemIn, itemBs условно пусто (на самом деле там мусор и обращение к ним скорее вызовет непредсказуемый результат, вплоть до краша сервера) Дальше: itemBs = ItemBase.Cast(itemEnt); — вы берете переменную itemEnt и пытаетесь привести её к типу переменной itemBs, но смысла в этой операции нет, потому что в itemEnt ничего нет (кроме мусора)! И тут наша «вишенка на торт»: SetHealth(itemEnt, 20); — тут вы вызываете функцию SetHealth(), которая возможно и определена у вас (в родных скриптах DayZ такой нет) и передаете ей одним из аргументов переменную itemEnt. Смотрим выше и узнаем, что эта переменная определена, но никак не инициализирована! Уж если что и передавать аргументом в эту функцию, то переменную item, ведь в ней хранится адрес созданных ботинок! Опять же, я более чем уверен, что в первую очередь сервер ругается на отсутствие функции SetHealth(). Ведь на самом деле есть метод SetHealth() у класса EntityAI и вызывать его следует так: itemVar.SetHealth("","",value); — где itemVar является переменной типа EntityAI, а value — переменная целочисленного типа или целое число. В итоге, включив мозг, мы получаем рабочий код в виде: EntityAI item; // определили переменную item = player.GetInventory().CreateInInventory( "CombatBoots_Green"); // сохранили в нее результат выполнения метода (в случае удачи там «адрес», неудачи — NULL) if( item ) // проверили, есть ли у переменной значение неравное NULL (т.е. убедились, что ботинки создались) { item.SetHealth("","",20); // ну и вызвали метод, который позволяет нам выставить условное здоровье }
  3. 2 балла
    AntonivkA

    DayZ LootEdit

    нажми на кнопочку Release, открой спойлер и будет тебе архив с exe-шником.
  4. 2 балла
    Gizda

    DayZ LootEdit

    DayZLootEdit-v0.1.zip
  5. 1 балл
    BorizzK

    Скиньте кто не буть мод WeaponReduxPack

    NeRVana А пиратство тут при чем? WeaponReduxPack.pbo redux.xml cfgspawnabletypes paste in.xml
  6. 1 балл
    BorizzK

    Отражение урона убийце

    Славик Класс PlayerBase это PlayerBase.c в scripts\4_World\Entities\ManBase В общих чертах распишу 1 Для начала Вам надо понять что такое моддинг, скриптинг, как устроен язык enfusion, структуру и тп Для этого читаем и https://community.bistudio.com/wiki/DayZ:Enforce_Script_Syntax сопоставляем можно еще вкратце прочитать про C# Далее открываем pbo-менеджером (скачать, уствновить) файл scripts.pbo из папки dta его содержимое вытаскиваем в папку scripts в корне сервера в параметр запуска сервера добавляем -filepatching в конфиге сервера (по нему и параметрам запуска читаем отдельную тему (поиск рулит) на форуме и в вики богемии (и на их форуме forums.dayz.com) отключаем проверку сигнатур (на время тестов - отладки и тп - что бы тестить было проще без постоянной перепаковки серверного мода) и приступаем хотим отмоддидь этот PlayerBase копируем PlayerBase.c рядом в PlayerBase_mymod.c открываем видим class PlayerBase extends ManBase { тут содержимое класса (тело) - его переменные функциии и тп это класс игрока - когда подключается игрок для него создается экземпляр класса и все операции с игроком идут через него часть функций вызывает движок при определенных событиях часть функций вызывается из функций класса или из других классов и тп } конец тела класса меняем - добавляем modded - движок (его компилятор при старте поймет что это мод и что оно перекроет/дополнит существующий класс) modded class PlayerBase extends ManBase { все содержимое удаляем кроме функции override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos) { тут код функции } } функцию EEHitBy движок вызывает для конкретного игрока всякий раз когда по нему прилетает от игрков, зомби, машин и тп - кроме прямого попадания в бошку override это означает что функция перекрывает существующую в нативном классе функцию или функцию в родительском классе (если в ее нет в нативном)) ну и дальше Однако - прямое попадание в бошку можно перехватить чуть ранее в DayZPlayerImplement.c - однако игрок всеравно будет мертвый - посему пофиг и туда не лезем и вот берем мы эту функцию и видим override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos) { /* Print("ProjectileDebugging | Damage Health: " + damageResult.GetDamage(dmgZone,"Health") + " | Zone: " + dmgZone); Print("ProjectileDebugging | Damage Blood: " + damageResult.GetDamage(dmgZone,"Blood") + " | Zone: " + dmgZone); Print("ProjectileDebugging | speedCoef: " + speedCoef); Print("-----------------------------------------------");*/ if( m_AdminLog ) { m_AdminLog.PlayerHitBy( damageResult, damageType, this, source, component, dmgZone, ammo ); } super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos); if( damageResult != null && damageResult.GetDamage(dmgZone, "Shock") > 0) { m_LastShockHitTime = GetGame().GetTime(); } //! DT_EXPLOSION & FlashGrenade if( damageType == DT_EXPLOSION && ammo == "FlashGrenade_Ammo" ) { GetStaminaHandler().DepleteStamina(EStaminaModifiers.OVERALL_DRAIN); } //new bleeding computation //--------------------------------------- if( damageResult != null && GetBleedingManagerServer() ) { float dmg = damageResult.GetDamage(dmgZone, "Blood"); GetBleedingManagerServer().ProcessHit(dmg, source, component, dmgZone, ammo, modelPos); } //--------------------------------------- #ifdef DEVELOPER if(DiagMenu.GetBool(DiagMenuIDs.DM_MELEE_DEBUG_ENABLE)) { Print("EEHitBy() | Charater " + GetDisplayName() + " hit by " + source.GetDisplayName() + " to " + dmgZone); } PluginRemotePlayerDebugServer plugin_remote_server = PluginRemotePlayerDebugServer.Cast( GetPlugin(PluginRemotePlayerDebugServer) ); if(plugin_remote_server) { plugin_remote_server.OnDamageEvent(this, damageResult); } #endif if( GetGame().IsDebugMonitor() ) m_DebugMonitorValues.SetLastDamage(source.GetDisplayName()); if( m_ActionManager ) m_ActionManager.Interrupt(); //analytics GetGame().GetAnalyticsServer().OnEntityHit( source, this ); } Видим мы что в функцию передаются различные параметры Сам игрок по которому прилетело там не указан тк он тут везде по умолчанию - экземпляр класса же его и двигло свам его где надо подпихивает ну или можно самому указать где надо - this - в этой переменной он и будет Так вот нас интерисует уСЧерб и от кого оно прилетело по коду функции все в приниципе понятно Продолжение следует
  7. 1 балл
    dosserua

    Спавн лута-вынос мозга.

    Ты не описал что значит строка deloot="0" Я методом тыка разобрался и понял у себя на тест сервере. deloot - если значение 0 то оружие будет в указанных зонах из тэгов, если 1, то только на хеликрашах в указанных зонах Tier 1 2 3 или 4 ну или всех Tier.
×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка