• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Интерфейс хф + исходники 0.7 + Rolo Ext 0.1

Нет прав для скачивания
C#:
function SpawnTargetEffect()
{
    local UserInfo    info;
    local Actor PlayerActor;
    local Pawn P;
    
    PlayerActor = GetPlayerActor();
    GetUserInfo(m_TargetID, info);
    foreach PlayerActor.CollidingActors(class'Pawn', P, 100, info.Loc)
    {
        if (m_TargetID == P.CreatureID && m_TargetID > 0)
        {
            if (P.CurRideType != 0 && P.RidePawn.Name == '')     // is rider so skip
            continue;
            
            targetEmitter = P.Spawn(TargetEmitterClass, P, , P.Location, P.Rotation);
            targetEmitter.SetBase(P);
            targetEmitter.Emitters[0].Disabled = true;
            targetEmitter.Emitters[0].Texture = targetTexture;
            targetEmitter.Emitters[0].StartLocationOffset.Z = P.DamageEffectOffset;
            
            return;
        }
    }
}
 
Реакции: Rolo
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Ну потому что у тебя sysmsg не соответствуют тому что прописано в скрипте дамага.
 
Там вот только это-вот, на 126 строке:
Код:
Выпилить нахер тестовый вариант:
    targetEmitterClass = class<Emitter>(DynamicLoadObject("TestEffect.TestEffect", class'Class'));

Впилить с гордым взглядом и чувством того что вы сейчас будете вертеть свои таргеты по всякому
    targetEmitterClass = class<Emitter>(DynamicLoadObject("MonIcaTargetEffect.Target", class'Class'));
 
Реакции: Monokini2

    Monokini2

    Баллов: 6
    3 патча первого дня это норма!
Попытался через эффект присабачить дамаг на экране ради интереса по сингл тaргету, есть вопрос можно ли как то на лету менять x,y,z координаты спрайтэмитера в Emitters кроме тех что задаются при создании (StartLocationOffset).
пока как то так
фпсов нет потому что гифка)
 
Спарсить радиус с скриптов птс ретейла в отдельный файл. )))))) А там только ваша фантазия куда вы их запихнете.
 
Просто это самое простое, где более менее самые точные данные по радиусу. Параметр collision_radius, возможно ещё пригодится для каких то целей collision_height. Все же это самые приближенные данные к тем что можно найти под HF.
 

Вложения

Привет у меня возник вопрос, как удалять динамический созданный объект?
Просто у меня они весят)
 

Вложения

  • Снимок.webp
    155,3 КБ · Просмотры: 173
@BIT_hack, просто я клепал этот ужас на сервере, где при смене таргета между 2х нпц порядок приходящих ид (id1-0-id2), а у тебя просто id1-id2.

попробуй так function HandleTargetUpdate(optional bool spawnTarget) изменить
C++:
    TargetID = class'UIDATA_TARGET'.static.GetTargetID();
    if (TargetID < 1)
    {
        if (contextOwner && wnd_contextMenu.isShowWindow())
        {
            wnd_contextMenu.HideWindow();
        }
      
        if (m_TargetID != targetID)
        {
            if (targetEmitter != None)
            {
                targetEmitter.NDestroy();
                targetEmitter=None;
            }
            m_TargetID = targetID;
        }
        Me.HideWindow();
        return;
    }

    if (m_TargetID != TargetID)
    {
        if (contextOwner && wnd_contextMenu.isShowWindow())
        {
            wnd_contextMenu.HideWindow();
        }
      
        if (targetEmitter != None && m_TargetID > 0) // when switching target between 2 npc exist 2 types of incoming npcId (depends of server?): npc1id->npc2id and npc1id->0->npc2id
        {
            targetEmitter.NDestroy();
            targetEmitter=None;
        }
    }
    else
    {
        return;
    }

Сам пофикшенный эффект попозже тоже обновлю, в этом нет проверок павна на bPendingDelete и bDeleteMe (он при трансформации при взятом таргете остается на земле )
 
О спасибо просто я не знал как ты уничтожаешь емиторы вот, что мне нужно было!

targetEmitter.NDestroy();
targetEmitter=None;


Я свой скрипт писал)
C++:
/******************************************

    Разработчик: BITHACK

    Copyright (c) 1995,2022 Ваша компания

    Описание скрипта:....

 *******************************************/
class BIT_Interface extends UICommonAPI ;

    #exec Texture Import File=Textures/fx_m_t7188.dds Name=Target Mips=Off MASKED=1

  var class<Emitter> targetEmitterClass;
  var Emitter targetEmitter;

function OnRegisterEvent(){ /* Регистрация игровых событий */

    RegisterEvent( EV_TargetUpdate );
  }

function OnEvent(int Event_ID, string param) { /* Обработчик игровых событий */

  switch( Event_ID ){
    case EV_TargetUpdate:
    SpawnTargetEffect();
      break;
  }
  }

function OnLoad() {
    targetEmitterClass = class<Emitter>(DynamicLoadObject("MyU.BIT_Target", class'Class'));
  }

function SpawnTargetEffect()
{
     local UserInfo info;
     local Actor PlayerActor;
     local Pawn P;
     local int TargetID;

    targetEmitter.NDestroy();
    targetEmitter=None;

    PlayerActor = GetPlayerActor();

    TargetID = class'UIDATA_TARGET'.static.GetTargetID();

    GetUserInfo(TargetID, info);

 foreach PlayerActor.CollidingActors(class'Pawn', P, 100, info.Loc)
{
   if (TargetID == P.CreatureID && TargetID > 0)
{
   if (P.CurRideType != 0 && P.RidePawn.Name == '') // is rider so skip
    continue;

    targetEmitter = P.Spawn(TargetEmitterClass, P, , P.Location, P.Rotation);
    targetEmitter.SetBase(P);
    targetEmitter.Emitters[0].Disabled = true;
    targetEmitter.Emitters[0].Texture = Texture'Target';
    targetEmitter.Emitters[0].StartLocationOffset.Z = P.DamageEffectOffset;

    return;
  }

  }
  }

    defaultproperties{}
 
Реакции: kick
Вообще старайся None'ить все глобальные эмиттеры и тд, а то на релогах и тепортах могут лететь криты (как я понял из-за сборщика мусора)
 
Реакции: kick
Я вчера только сел разбираться с этим вопросом можно сказать ничего не понимаю в эффектах)
 
Код:
targetEmitter.Emitters[0].StartLocationOffset.Z = P.DamageEffectOffset;
тут я передавал параметр для скалирования размера, но как оказалосьP.DamageEffectOffset везде одинаковый лучше плясать от P.CollisionRadius

Ну я просто рассказываю о своих граблях)
 
Я вот не могу понять в defaultproperties задаются параметры и только с ними он может работать больше нет доступа к ним?
C++:
    defaultproperties{
// SomeTexture= Texture'BIT_Target.MonIcaTargetTextures.fx_m_t7152'
    Begin Object class=SpriteEmitter name=SpriteEmitter0
    ColorScale=
    MaxParticles=1
    Disabled=true
    StartLocationOffset=(X=0,Y=0,Z=48)
    StartLocationRange=(X=(Min=0,Max=0),Y=(Min=0,Max=0),Z=(Min=9.8791,Max=9.8791))
    UseRotationFrom=2
    SpinParticles=true
    UseRegularSizeScale=false
    UniformSize=true
    SizeScale=
    StartSizeRange=(X=(Min=4.18176,Max=4.18176),Y=(Min=4.18176,Max=4.18176),Z=(Min=4.18176,Max=4.18176))
    InitialParticlesPerSecond=10000
automaticInitialSpawning=false
    DrawStyle=1
    Texture=none
    LifetimeRange=(Min=1,Max=1)
    StartVelocityRange=(X=(Min=0,Max=0),Y=(Min=0,Max=0),Z=(Min=0.005123,Max=0.005123))
    Name="SpriteEmitter0"
    End Object
    Emitters(0)=SpriteEmitter0
    bLightChanged=true
    bNoDelete=false
    bSunAffect=true
    Rotation=(Pitch=-16400,Yaw=0,Roll=0)
    DrawScale=0.5
  }

А не все понял с ними можно работать с динамически созданным объектом!
 
@BIT_hack, часть ты можешь менять наживую, часть только сразу после спавна эффекта и часть только из defaultproperties (dczrbt acceleration) но могу ошибаться

А не все понял с ними можно работать с динамически созданным объектом!
а ну так то да, но имеено в эффектах надо смотреть что можно поменять)
 
вот например пытался дамаг сделать, динамически меняю текстуры и их размер вз ависимости от удаления камеры, но отступ по Z изменить не могу налету

это мы с @Rolo слепили, он даже с сервер сайда умудрися присабачить, может поделится видео своих стресс тестов)
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…