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.
Не доделан!
Вообще планировалось просто окно настроек переделать на новый лад, в итоге недоделал первую страницу и повернул не туда
Шапки и боковые фреймы сделаны через натягивание своих снизу обесцвеченных стандартных (шапки пока не обесцвечивал), вроде сделал переключение основных окон между 4,25 стилями (хф, хф с баром, ессенс, асассины и то что на нашем мейне)
Примерно тестилось на рпгклабе и л2-аге. Минимайз костыльный, про дизан сайдбара промолчим) Выложил больше для...
этот новый интрерфейс с ассасина еще та кринжатураMonokini2 обновил(а) ресурс Интерфейс хф + исходники новой записью:
продолжаем натягивать сову
Узнать больше об этом обновлении...
Тот же эссенс, разве что имхо слишком высокий в плане патиэтот новый интрерфейс с ассасина еще та кринжатура
Monokini2 обновил(а) ресурс Интерфейс хф + исходники новой записью:
продолжаем натягивать сову
Узнать больше об этом обновлении...
Я инвентарь не делал, просто приклеил шапку и минимайз попробовал свой сделать. просто перерисуй из настроек стилей заново пока
Изменение размера инвентаря как то так.
Написано же - "Не смеяться"ну уже не зря
Здравствуйте! Очень красивая работа, очень хорошо сделана!Хотфикс
ну у меня таргет эффект так сделан, как говорится шо смог, по идее туда можно с интерфейса и скорость и пульсацию настраивать и картинкуЗдравствуйте! Очень красивая работа, очень хорошо сделана!
Не могли бы вы ответить на мое личное сообщение? Спасибо!
class Target extends Emitter; // DynamicProjector
var DynamicProjector TestDynamicProjector;
var bool saveScale;
var float scale;
var float prevscale;
var rotator R;
var bool InitTick;
var bool InitTimer;
var int targetID;
function PostBeginPlay()
{
Super.PostNetBeginPlay();
targetID = Owner.CreatureID;
TestDynamicProjector = Spawn(class'DynamicProjector', Owner, , , Rotation);
TestDynamicProjector.SetDrawScale(0);
TestDynamicProjector.FrameBufferBlendingOp = PB_AlphaBlend;
TestDynamicProjector.MaterialBlendingOp = PB_None;
self.SetBase(TestDynamicProjector);
TestDynamicProjector.bClipBSP = true;
TestDynamicProjector.bClipStaticMesh = true;
TestDynamicProjector.bProjectOnUnlit = true;
TestDynamicProjector.FOV = 1;
SetTimer(0.05, false);
}
function FindMountScale()
{
local Pawn P;
foreach RadiusActors(class'Pawn', P, 500, TestDynamicProjector.Location)
{
if (P.CreatureID == targetID && P.RidePawn.Name != '')
{
self.SetOwner(P);
scale = P.CollisionRadius/110;
InitTick = true;
break;
}
}
SetTimer(0.01, false);
}
function FindNewPawn()
{
local Pawn P;
foreach RadiusActors(class'Pawn', P, 500, TestDynamicProjector.Location)
{
if (P.CreatureID == targetID && P.RidePawn.Name == '')
{
self.SetOwner(P);
scale = P.CollisionRadius/110;
InitTick = true;
break;
}
}
SetTimer(0.01, false);
}
function Tick(float deltatime)
{
if (InitTick)
{
if (Owner != None)
{
TestDynamicProjector.DetachProjector();
TestDynamicProjector.SetLocation(Owner.Location);
TestDynamicProjector.AttachProjector();
}
}
super.Tick(deltatime);
}
function Timer()
{
if (!InitTimer)
{
if (TestDynamicProjector.ProjTexture.Name == 'None')
{
scale = TransientSoundRadius;
prevscale = scale;
Emitters[0].Texture.UClampMode = TC_Clamp;
Emitters[0].Texture.VClampMode = TC_Clamp;
TestDynamicProjector.ProjTexture = Emitters[0].Texture;
InitTimer = true;
InitTick = true;
SetTimer(0.01, false);
}
}
else
{
if (TransientSoundVolume == 1)
{
if (!InitTick)
{
if (Owner == None)
FindNewPawn();
else
FindMountScale();
return;
}
if (Owner == None)
{
InitTick = false;
TestDynamicProjector.SetDrawScale(0);
SetTimer(0.03, false);
return;
}
if (Pawn(Owner).CurRideType != 0) // change effect scale when use mount
{
if (!saveScale)
{
InitTick = false;
saveScale = true;
prevscale = scale;
TestDynamicProjector.SetDrawScale(0);
SetTimer(0.03, false);
return;
}
}
else
{
if (saveScale)
{
saveScale = false;
scale = prevscale;
}
}
}
if (int(m_fCurTime) % 2 == 0)
{
TestDynamicProjector.SetDrawScale((1 + (m_fCurTime - int(m_fCurTime))*0.33) * scale); // scale range ~1.0-1.33
}
else
{
TestDynamicProjector.SetDrawScale((1.3 - (m_fCurTime - int(m_fCurTime))*0.33) * scale);
}
R.Yaw = - 1000 * m_fCurTime;
TestDynamicProjector.SetRotation(R);
SetTimer(0.01, false);
}
}
event Destroyed()
{
TestDynamicProjector.SetDrawScale(0);
Level.ObjectPool.FreeObject(TestDynamicProjector.ProjTexture);
TestDynamicProjector.ProjTexture = None;
TestDynamicProjector.NDestroy();
TestDynamicProjector = None;
Super.Destroyed();
}
defaultproperties
{
Rotation=(Pitch=-16384,Yaw=0,Roll=0)
R=(Pitch=-16384,Yaw=0,Roll=0)
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
MaxParticles=1
UniformSize=True
SizeScale(0)=(RelativeSize=1.000000)
InitialParticlesPerSecond=1.000000
AutomaticInitialSpawning=False
Texture=None
LifetimeRange=(Min=1.000000,Max=1.000000)
Disabled=True
Name="SpriteEmitter1"
End Object
Emitters(0)=SpriteEmitter'SpriteEmitter1'
bNoDelete=False
}
Да, я все прекрасно понимаю, но проблема заключается в следующем.ну у меня таргет эффект так сделан, как говорится шо смог, по идее туда можно с интерфейса и скорость и пульсацию настраивать и картинку
C++:class Target extends Emitter; // DynamicProjector var DynamicProjector TestDynamicProjector; var bool saveScale; var float scale; var float prevscale; var rotator R; var bool InitTick; var bool InitTimer; var int targetID; function PostBeginPlay() { Super.PostNetBeginPlay(); targetID = Owner.CreatureID; TestDynamicProjector = Spawn(class'DynamicProjector', Owner, , , Rotation); TestDynamicProjector.SetDrawScale(0); TestDynamicProjector.FrameBufferBlendingOp = PB_AlphaBlend; TestDynamicProjector.MaterialBlendingOp = PB_None; self.SetBase(TestDynamicProjector); TestDynamicProjector.bClipBSP = true; TestDynamicProjector.bClipStaticMesh = true; TestDynamicProjector.bProjectOnUnlit = true; TestDynamicProjector.FOV = 1; SetTimer(0.05, false); } function FindMountScale() { local Pawn P; foreach RadiusActors(class'Pawn', P, 500, TestDynamicProjector.Location) { if (P.CreatureID == targetID && P.RidePawn.Name != '') { self.SetOwner(P); scale = P.CollisionRadius/110; InitTick = true; break; } } SetTimer(0.01, false); } function FindNewPawn() { local Pawn P; foreach RadiusActors(class'Pawn', P, 500, TestDynamicProjector.Location) { if (P.CreatureID == targetID && P.RidePawn.Name == '') { self.SetOwner(P); scale = P.CollisionRadius/110; InitTick = true; break; } } SetTimer(0.01, false); } function Tick(float deltatime) { if (InitTick) { if (Owner != None) { TestDynamicProjector.DetachProjector(); TestDynamicProjector.SetLocation(Owner.Location); TestDynamicProjector.AttachProjector(); } } super.Tick(deltatime); } function Timer() { if (!InitTimer) { if (TestDynamicProjector.ProjTexture.Name == 'None') { scale = TransientSoundRadius; prevscale = scale; Emitters[0].Texture.UClampMode = TC_Clamp; Emitters[0].Texture.VClampMode = TC_Clamp; TestDynamicProjector.ProjTexture = Emitters[0].Texture; InitTimer = true; InitTick = true; SetTimer(0.01, false); } } else { if (TransientSoundVolume == 1) { if (!InitTick) { if (Owner == None) FindNewPawn(); else FindMountScale(); return; } if (Owner == None) { InitTick = false; TestDynamicProjector.SetDrawScale(0); SetTimer(0.03, false); return; } if (Pawn(Owner).CurRideType != 0) // change effect scale when use mount { if (!saveScale) { InitTick = false; saveScale = true; prevscale = scale; TestDynamicProjector.SetDrawScale(0); SetTimer(0.03, false); return; } } else { if (saveScale) { saveScale = false; scale = prevscale; } } } if (int(m_fCurTime) % 2 == 0) { TestDynamicProjector.SetDrawScale((1 + (m_fCurTime - int(m_fCurTime))*0.33) * scale); // scale range ~1.0-1.33 } else { TestDynamicProjector.SetDrawScale((1.3 - (m_fCurTime - int(m_fCurTime))*0.33) * scale); } R.Yaw = - 1000 * m_fCurTime; TestDynamicProjector.SetRotation(R); SetTimer(0.01, false); } } event Destroyed() { TestDynamicProjector.SetDrawScale(0); Level.ObjectPool.FreeObject(TestDynamicProjector.ProjTexture); TestDynamicProjector.ProjTexture = None; TestDynamicProjector.NDestroy(); TestDynamicProjector = None; Super.Destroyed(); } defaultproperties { Rotation=(Pitch=-16384,Yaw=0,Roll=0) R=(Pitch=-16384,Yaw=0,Roll=0) Begin Object Class=SpriteEmitter Name=SpriteEmitter1 MaxParticles=1 UniformSize=True SizeScale(0)=(RelativeSize=1.000000) InitialParticlesPerSecond=1.000000 AutomaticInitialSpawning=False Texture=None LifetimeRange=(Min=1.000000,Max=1.000000) Disabled=True Name="SpriteEmitter1" End Object Emitters(0)=SpriteEmitter'SpriteEmitter1' bNoDelete=False }
nice work with the textures, looks awesome!so, poke and kill phepes, an attempt to attach damage to the pts of the rpg club)) but, alas, there is not enough accuracy for the skills (xs where the damage value from the skills is pulled from, ruin the damage messages from the reflection, the absence of the success message of debuffs, well, the stuns with slips ), in general, it’s more for beauty, don’t forget the indicators of goals for yourself and for the pet in xdat