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

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

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

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

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

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


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

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

  1. 2 балла
    BorizzK

    Трупы суицидников

    Scripts\4_World\Classes modded class EmoteCB : HumanCommandActionCallback { override void OnAnimationEvent(int pEventID) { if (pEventID == EmoteConstants.EMOTE_SUICIDE_SIMULATION_END) { EntityAI itemInHands = m_player.GetHumanInventory().GetEntityInHands(); ProcessSuicidedPlayer(itemInHands); } super.OnAnimationEvent(pEventID); } void ProcessSuicidedPlayer(EntityAI itemInHands) { if (m_player) m_player.SetLifetime(3); if (itemInHands) itemInHands.SetLifetime(3); } } Установим время жизни 3 сек Причина? Если грохнуть тело сразу может быть сбой сервера Но! Можно отмоддидь PlayerBase и сделать там функцию или вызов которые удалят и перса и оружие И вызывать ее Но предварительно уствновить флаг - для этого то же свая\ем функцию (SetSuicided) и создадим переменную m_Suicided в PlayerBase modded class EmoteCB : HumanCommandActionCallback { override void OnAnimationEvent(int pEventID) { if (pEventID == EmoteConstants.EMOTE_SUICIDE_SIMULATION_END) { EntityAI itemInHands = m_player.GetHumanInventory().GetEntityInHands(); m_player.SetSuicided(itemInHands); } super.OnAnimationEvent(pEventID); } } class PlayerBase extends ManBase { bool m_Suicided; void SetSuicided(EntityAI item) { m_Suicided = true; if (item) GetGame().ObjectDelete(item); } override void EEKilled( Object killer ) { super.EEKilled( killer ); if (m_Suicided) GetGame().ObjectDelete(this); } }
  2. 1 балл
    BorizzK

    Постоянный id предмета в игре

    Любоай предмет имеет свой persistent id (который его отличает от других в бд сервера) Получить его просто int b1,b2,b3,b4; GetPersistentID( b1, b2, b3,b4 ); string m_PersistenceId = b1.ToString() + b2.ToString() + b3.ToString() + b4.ToString(); Как использовать? Это решайте сами
  3. 1 балл
    BorizzK

    Бесконечная жизнь предметам.

    this внутри класса предмета так юзать смысла не имеет SetAllowDamage(false); this нужен для передачи в параметрах функции типа Функция(this);
  4. 1 балл
    paranoyk

    Прямоугольные зоны

    ИМХО, можно, но....вспоминать геометрию, выводить формулы,подключать.....даже мыло и верёвка покажутся лучшим выходом.
  5. 1 балл
    123new

    Звук

    override void OnSteppedOn(EntityAI victim) { bool IsServer = false; bool IsDisarmed = false; if ( GetGame().IsServer()) { IsServer = true; } IsDisarmed = GetDisarmed(); if(victim) { PlayerBase victim_PB = PlayerBase.Cast( victim ); if ( victim_PB && victim_PB.IsAlive() ) { if (IsServer) { if ( !IsDisarmed ) { int randNum; //value used for probability evaluation randNum = Math.RandomInt(0, 100); if ( randNum <= BROKEN_LEG_PROB ) { float damage = victim_PB.GetMaxHealth( "RightLeg", "" ); //deal 100% damage to break legs victim_PB.DamageAllLegs( damage ); } randNum = Math.RandomInt(0, 100); if ( randNum < BLEED_SOURCE_PROB ) { for ( int i = 0; i < MAX_BLEED_SOURCE; i++ ) { //We add two bleeding sources max to lower half randNum = Math.RandomIntInclusive(0, PlayerBase.m_BleedingSourcesLow.Count() - 1); victim_PB.m_BleedingManagerServer.AttemptAddBleedingSourceBySelection(PlayerBase.m_BleedingSourcesLow[randNum]); } } DamageClothing( victim_PB ); Explode( DT_EXPLOSION ); } m_DeleteTimer = new Timer( CALL_CATEGORY_SYSTEM ); m_DeleteTimer.Run( 1, this, "DeleteThis" ); } if ( GetGame().IsClient() || !GetGame().IsMultiplayer()) { if ( GetGame().GetPlayer() ) { if ( !IsDisarmed ) { PlaySoundHeart(); } } } SetState(TRIGGERED); } } } в теории лучше так наверно
  6. 1 балл
    123new

    Звук

    разумеется нужно. Точнее вообще это надо переделывать. У тебя щас if ( GetGame().IsClient() || !GetGame().IsMultiplayer()) { if ( GetGame().GetPlayer() ) { PlaySoundHeart(); } } выполняется вне проверок if ( !GetDisarmed() ) и if ( victim ) Проще говоря, ты не проверяешь как я понимаю наличие активировалась ли ловушка и т.п. Тем не менее через if ( GetGame().IsServer()) ты отрубаешь эти проверки для клиента Т.е. у тебя звук в любом случае проигрывается когда выполняется OnSteppedOn именно на клиенте
  7. 0 баллов
    Ждите @BorizzK, поможет.
×
×
  • Создать...

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

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

Поддержка