Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Ты просто текст урона без преобразование пихаешь в targetEmitter.Emitters[0].Texture=текст это и есть текстуры)
Ок спасибо попробую разобраться!За месяц уже забыл просто, по хорошему тоже доделать и выложить надо. Там эффект в эффекте, в первый передаем длину и текстуры, и в нем уже спавним отдельные эффекты с числами и крепим друг к дружке вроде
/******************************************
Разработчик: BITHACK
Copyright (c) 1995,2022 Ваша компания
Описание скрипта:....
*******************************************/
class BIT_LoadTargetEffect extends UICommonAPI;
#exec Texture Import File=Textures/Target.dds Name=Target Mips=Off MASKED=1
var Emitter MyEmitter;
function OnRegisterEvent(){ /* Регистрация игровых событий */
RegisterEvent( EV_TargetUpdate );
}
function OnEvent(int Event_ID, string param) { /* Обработчик игровых событий */
if ( Event_ID == EV_TargetUpdate)
SpawnTargetEffect();
}
function SpawnTargetEffect()
{
local UserInfo info;
local Actor MyActor;
if(MyEmitter != None) {
MyEmitter.NDestroy();
MyEmitter = None;
}
MyActor = class'UIDATA_TARGET'.static.GetTargetActor();
GetUserInfo(class'UIDATA_TARGET'.static.GetTargetID(), info);
MyEmitter = Pawn(MyActor).Spawn(class'BIT_TargetEffect', Pawn(MyActor), , info.Loc, rot(0,0,0));
MyEmitter.SetBase(Pawn(MyActor));
MyEmitter.Emitters[0].Disabled = true;
MyEmitter.Emitters[0].Texture = Texture'Target';//Текстру также можно взять из своего пака UTX
}
defaultproperties{}
/******************************************
Разработчик: BITHACK
Copyright (c) 1995,2022 Ваша компания
Описание скрипта:....
*******************************************/
class BIT_TargetEffect extends Emitter;
var Texture ProjectorTexture;
var DynamicProjector TestDynamicProjector;
function PostBeginPlay(){
Super.PostNetBeginPlay();
TestDynamicProjector = Spawn(class'DynamicProjector', Instigator, , , Rotation);
TestDynamicProjector.FrameBufferBlendingOp = PB_AlphaBlend;
TestDynamicProjector.MaterialBlendingOp = PB_None;
TestDynamicProjector.SetDrawScale(Emitters[0].StartLocationOffset.Z/600);
TestDynamicProjector.bDynamicAttach = true;
TestDynamicProjector.bClipBSP = true;
TestDynamicProjector.bClipStaticMesh = true;
TestDynamicProjector.bProjectTerrain = true;
TestDynamicProjector.bProjectActor = true;
TestDynamicProjector.bProjectBSP = true;
TestDynamicProjector.bProjectOnUnlit = true;
TestDynamicProjector.bLevelStatic = true;
TestDynamicProjector.FOV = 1;
TestDynamicProjector.MaxTraceDistance = 1000;
TestDynamicProjector.bGradient = false;
TestDynamicProjector.bSunAffect = false;
SetTimer(0.05, false);
}
function Tick(float deltatime){
local rotator projectorRotation;
projectorRotation.Pitch = -16400;
projectorRotation.roll = 0;
projectorRotation.Yaw = TestDynamicProjector.Rotation.Yaw + 50;
super.Tick(deltatime);
TestDynamicProjector.DetachProjector();
TestDynamicProjector.SetLocation(Instigator.Location);
TestDynamicProjector.SetRotation(projectorRotation);
TestDynamicProjector.AttachProjector();
}
function Timer(){
if (TestDynamicProjector.ProjTexture.Name == 'None')
{
Emitters[0].Texture.UClampMode = TC_Clamp;
Emitters[0].Texture.VClampMode = TC_Clamp;
Emitters[0].Texture.bAlphaTexture = true;
TestDynamicProjector.ProjTexture = Emitters[0].Texture;
}
}
event Destroyed(){
Level.ObjectPool.FreeObject(TestDynamicProjector.ProjTexture);
TestDynamicProjector.ProjTexture = None;
TestDynamicProjector.NDestroy();
Super.Destroyed();
}
defaultproperties{
Begin Object class=SpriteEmitter name=SpriteEmitter0
StartLocationOffset = (X=0,Y=0,Z=70)
Name="SpriteEmitter0"
End Object
Emitters(0)=SpriteEmitter0
bLightChanged=true
bNoDelete=false
bSunAffect=true
}
Если я правильно тебя понял, тебе не удалось управлять размером картинки из своего скрипта? Если да то сделай так:тут я передавал параметр для скалирования размера, но как оказалосьP.DamageEffectOffset везде одинаковый лучше плясать от P.CollisionRadiusКод:targetEmitter.Emitters[0].StartLocationOffset.Z = P.DamageEffectOffset;
из функции function PostBeginPlay()
Перенеси TestDynamicProjector.SetDrawScale(Emitters[0].StartLocationOffset.Z/600);
В функцию function Tick(float deltatime)
После можешь управлять размером картинки из своей функции
targetEmitter..Emitters[0].StartLocationOffset.Z = 500;
/******************************************
Разработчик: BITHACK
Copyright (c) 1995,2022 Ваша компания
Описание скрипта:....
*******************************************/
class BIT_LoadTargetEffect extends UICommonAPI;
#exec Texture Import File=Textures/Target.dds Name=Target Mips=Off MASKED=1
var Emitter MyEmitter;
function OnRegisterEvent(){ /* Регистрация игровых событий */
RegisterEvent( EV_TargetUpdate );
}
function OnEvent(int Event_ID, string param) { /* Обработчик игровых событий */
if ( Event_ID == EV_TargetUpdate)
SpawnTargetEffect();
}
function SpawnTargetEffect(){
local UserInfo info;
local Actor MyActor;
if(MyEmitter != None) {
MyEmitter.NDestroy();
MyEmitter = None;
}
MyActor = class'UIDATA_TARGET'.static.GetTargetActor();
GetUserInfo(class'UIDATA_TARGET'.static.GetTargetID(), info);
MyEmitter = Pawn(MyActor).Spawn(class'BIT_TargetEffect', Pawn(MyActor), , info.Loc, rot(0,0,0));
MyEmitter.SetBase(Pawn(MyActor));
MyEmitter.Emitters[0].Disabled = true;
MyEmitter.Emitters[0].StartLocationOffset.Z = Pawn(MyActor).CollisionRadius*10; //Задается размер картинки CollisionRadius*10
MyEmitter.Emitters[0].Texture = Texture'Target'; //Текстру можно взять и из своего UTX
}
defaultproperties{}
/******************************************
Разработчик: BITHACK
Copyright (c) 1995,2022 Ваша компания
Описание скрипта:....
*******************************************/
class BIT_TargetEffect extends Emitter;
var Texture ProjectorTexture;
var DynamicProjector TestDynamicProjector;
function PostBeginPlay(){
Super.PostNetBeginPlay();
TestDynamicProjector = Spawn(class'DynamicProjector', , , , Rotation);
TestDynamicProjector.FrameBufferBlendingOp = PB_AlphaBlend;
TestDynamicProjector.MaterialBlendingOp = PB_None;
TestDynamicProjector.FOV = 1;
SetTimer(0.05, false);
}
function Tick(float deltatime){
local rotator projectorRotation;
TestDynamicProjector.SetDrawScale(Emitters[0].StartLocationOffset.Z/600);
projectorRotation.Pitch = -16400;
projectorRotation.roll = 0;
projectorRotation.Yaw = TestDynamicProjector.Rotation.Yaw + 50;
super.Tick(deltatime);
TestDynamicProjector.DetachProjector();
TestDynamicProjector.SetLocation(Location);
TestDynamicProjector.SetRotation(projectorRotation);
TestDynamicProjector.AttachProjector();
}
function Timer(){
if (TestDynamicProjector.ProjTexture.Name == 'None'){
Emitters[0].Texture.UClampMode = TC_Clamp;
Emitters[0].Texture.VClampMode = TC_Clamp;
Emitters[0].Texture.bAlphaTexture = true;
TestDynamicProjector.ProjTexture = Emitters[0].Texture;
}
}
event Destroyed(){
Level.ObjectPool.FreeObject(TestDynamicProjector.ProjTexture);
TestDynamicProjector.ProjTexture = None;
TestDynamicProjector.NDestroy();
Super.Destroyed();
}
defaultproperties{
Begin Object class=SpriteEmitter name=SpriteEmitter0
StartLocationOffset = (X=0,Y=0,Z=70)
Name="SpriteEmitter0"
End Object
Emitters(0)=SpriteEmitter0
bLightChanged=true
bNoDelete=false
}
Ок поменял на RegisterEvent( EV_ReceiveTargetLevelDiff ); теперь только свой таргет походу за это отвечаеттам еще насколько помню Event_ID == EV_TargetUpdate срабатывает не только когда ты новый таргет берешь, но и другие игроки)
а что произойдёт, если ударить 50 нпц одновременно?Ну так покекать, дамаг на эффекте)
спавнит на павне в таргете весь исходящий дамаг из EV_SystemMessage, но вроде можно прикрутить с сервера
Из минусов - дамаг на эффектах с текстурой , 9 знаков, при быстрых зумах проблема с высотой, при сильном отдалении скрывается движковым туманом? (disablefogging что-то неработает), ну и модификаторы скалирования и отступов текстур подбирал на глазок, надо геометрию почитать)).
Вообще еще хочется попробовать спроецировать эффект на сферу вокруг playercontrollera и уже ее вращать, по идее решит проблему с высотой и видимостью на расстоянии, но надо додумать
Это точно к Rolo, он там на пике x10 эффекты на каждый удар спавнил для теста)а что произойдёт, если ударить 50 нпц одновременно?
О спасибо! Интересно буду разбираться)!Ну так покекать, дамаг на эффекте)
спавнит на павне в таргете весь исходящий дамаг из EV_SystemMessage, но вроде можно прикрутить с сервера
Из минусов - дамаг на эффектах с текстурой , 9 знаков, при быстрых зумах проблема с высотой, при сильном отдалении скрывается движковым туманом? (disablefogging что-то неработает), ну и модификаторы скалирования и отступов текстур подбирал на глазок, надо геометрию почитать)).
Вообще еще хочется попробовать спроецировать эффект на сферу вокруг playercontrollera и уже ее вращать, по идее решит проблему с высотой и видимостью на расстоянии, но надо додумать
for (idx=0; idx<10; idx++)
{
DamageTextures[idx] = Texture(DynamicLoadObject("MonIca_DamageEffect_Tex.0"$idx, class'Texture'));
}
DamageTextures[10] = Texture(DynamicLoadObject("MonIca_DamageEffect_Tex.blocked", class'Texture'));
DamageTextures[11] = Texture(DynamicLoadObject("MonIca_DamageEffect_Tex.evaded", class'Texture'));
DamageTextures[12] = Texture(DynamicLoadObject("MonIca_DamageEffect_Tex.resisted", class'Texture'));
"SysTextures\ui2.ugx" open with the program l2Tool Java 8.20Может кто-нибудь подсказать где найти этих ребят в большем разрешении? Вроде все utx просмотрел
Посмотреть вложение 46398
Если нужно в игре как элемент интерфейса - сильвупле изучать split9 у текстур или на худой конец uv внутри элемента.BIT_hack, да эти я нашел, думал большие где есть