Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
26.08.2011, 13:06
#1
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
грубо говоря примерно так мб:
delphi Код:
if !ImAgr and recieve( MyTargetSelected) then curtarget:=id( MyTargetSelected) ;
....
if ImAgr then SaveCurTarget:=curtarget;
.....
If !ImAgr and SaveCurTarget<>0 then Target( SaveCurTarget) ;SaveCurTarget=0 ;
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 26.08.2011 в 13:29 .
31.08.2011, 11:13
#2
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
Ребяты ктонеть разобралса где считывать направление взгляда камеры? Хотябы какая там апи
__________________
читернуть бы ништяг
31.08.2011, 20:44
#3
Пользователь
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
Код:
class DLL_IMPORT UWindowsViewport : public UViewport
{
char Unknown1[0x0224 - 0x01ac];
public:
virtual INT Exec(TCHAR const *, class FOutputDevice &);
virtual ~UWindowsViewport();
virtual void Destroy();
virtual void ShutdownAfterError();
virtual INT Lock(BYTE *, INT *);
virtual void Unlock();
virtual INT IsFullscreen();
virtual INT ResizeViewport(DWORD, INT, INT, INT);
virtual void SetModeCursor();
virtual void UpdateWindowFrame();
virtual void OpenWindow(DWORD, INT, INT, INT, INT, INT);
virtual void CloseWindow();
virtual void UpdateInput(INT, FLOAT);
virtual void * GetWindow();
virtual void SetMouseCapture(INT, INT, INT);
virtual void Repaint(INT);
virtual void TryRenderDevice(TCHAR const *, INT, INT, INT);
virtual TCHAR * GetLocalizedKeyName(enum EInputKey);
virtual void PlayForceFeedBack(INT, FLOAT);
virtual void TickForceFeedBack(FLOAT);
virtual void SetMouseDisable(INT);
virtual INT IsDefaultConsolePos();
virtual INT IsMouseCaptured();
private:
static class UClass PrivateStaticClass();
public:
INT CauseInputEvent(INT, enum EInputAction, FLOAT);
static struct IDirectInput8W * DirectInput8();
void EndFullscreen();
static INT STDCALL EnumAxesCallback(struct DIDEVICEOBJECTINSTANCEW const *, void *);
static INT STDCALL EnumEffectsInFileProc(struct DIFILEEFFECT const *, void *);
static INT STDCALL EnumJoysticksCallback(struct DIDEVICEINSTANCEW const *, void *);
static class L2FFEffect FFEffect();
class UWindowsClient * GetOuterUWindowsClient() const;
DWORD GetViewportButtonFlags(DWORD);
static void CDECL InternalConstructor(void *);
static struct IDirectInputDevice8W * Joystick();
static struct DIDEVCAPS JoystickCaps();
static struct IDirectInputDevice8W * Mouse();
void SetDefaultConsolePos(INT);
void SetTopness();
static class UClass * CDECL StaticClass();
void ToggleFullscreen();
UWindowsViewport();
UWindowsViewport(class UWindowsViewport const &);
long ViewportWndProc(unsigned int, unsigned int, long);
static void * CDECL operator new(unsigned int, class UObject *, class FName, DWORD);
static void * CDECL operator new(unsigned int, enum EInternal *);
class UWindowsViewport & operator=(class UWindowsViewport const &);
};
__________________
Все относительно...
За это сообщение ALF нажился 3 спасибками от:
01.09.2011, 10:26
#4
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
вьюпорт не совсем то что нужно
камера скорее свойство какойнеть ugameengine. Вьюпорт в лице главного окна отвечает за весь конечный ввод-вывод user<->engine.
__________________
читернуть бы ништяг
01.09.2011, 11:22
#5
Пользователь
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
В UCanvas есть
virtual void DrawCameraSceneNode();
virtual void DrawCameraSceneNode(INT, INT, INT, INT, INT);
мб при перехвате их что то можно достать)
Я хз, камерами не занимался.
+ в UCanvas есть паблик переменные
Код:
class DLL_IMPORT UCanvas : public UObject
{
public:
class UFont* Font; //0034 0
FLOAT SpaceX; //0038 0
FLOAT SpaceY; //003c 0
FLOAT OrgX; //0040 0
FLOAT OrgY; //0044 0
FLOAT ClipX; //0048 0
FLOAT ClipY; //004c 0
FLOAT CurX; //0050 0
FLOAT CurY; //0054 0
FLOAT Z; //0058 0
BYTE Style; //005c 0
FLOAT CurYL; //0060 0
class FColor DrawColor; //0064 0
BITFIELD bCenter : 1; //0068 0
BITFIELD bNoSmooth : 1; //0068 0
INT SizeX; //006c 0
INT SizeY; //0070 0
...............................................
..............................................
__________________
Все относительно...
01.09.2011, 11:32
#6
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
Канвас помоему дря рендеренга на плоскости только.
Если метод есть там наверняка фигурирует ченеть типа FOV или view
__________________
читернуть бы ништяг
01.09.2011, 20:40
#7
Новичок
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
Направление камеры -
Перехватываю ALineagePlayerController_PlayerCalcView
Запоминаю адрес класса
Перехват убираю
Угол поворота камеры получаю по по смещению 0x1C4 в классе
Кто-бы придумал, как вообще без перехвата этот угол получать.
Да и смещение может смениться...
Код:
void ALineagePlayerController_PlayerCalcView_hook(ALineagePlayerController *This, int /*edx*/, int Actor, FVector *Vector, FRotator *CameraRotation)
{
ALineagePlayerControllerThis = This;
ALineagePlayerController_PlayerCalcView(This, 0, Actor, Vector, CameraRotation);
Убираю перехват....
}
if (ALineagePlayerControllerThis) {
CameraYaw = *(PDWORD)((PBYTE)ALineagePlayerControllerThis+0x1C4); //это работает Yaw тут
За это сообщение Эдвадко нажился 3 спасибками от:
02.09.2011, 10:56
#8
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
ну вот так и думал что какоенеть View )
Добавлено через 10 часов 33 минуты
А не пробывал взять в хуке сразу из rotator? В нем мб нече кроме yaw.pitch.roll кватерниона и нет нефига. А с таким смещением в контроллере тема не очень нравитса...
__________________
читернуть бы ништяг
Последний раз редактировалось mira, 02.09.2011 в 10:56 .
Причина: Добавлено сообщение
02.09.2011, 18:35
#9
Новичок
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
Так и делал раньше. Но хочется избавиться от хуков...
void __fastcall ALineagePlayerController_PlayerCalcView_hook(ALine agePlayerController *This, int /*edx*/, int Actor, FVector *Vector, FRotator *CameraRotation)
{
static int OldYaw;
ALineagePlayerController_PlayerCalcView(This, 0, Actor, Vector, CameraRotation);
if (CameraRotation->Yaw != OldYaw) {
OldYaw=CameraRotation->Yaw;
Отсылаем Yaw в модуль отрисовки радара..
}
}
За это сообщение Эдвадко нажился спасибкой от:
10.09.2011, 16:03
#10
Пользователь
Регистрация: 11.03.2011
Сообщений: 73
Сказал Спасибо: 4
Имеет 8 спасибок в 4 сообщенях
удалил. тупые вопросы.
Последний раз редактировалось Anfet, 10.09.2011 в 17:05 .
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 20:15 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!