Вернуться   CoderX :: Forums > Основные форумы > Полезности
Войти через OpenID

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 26.08.2011, 13:06   #1
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

грубо говоря примерно так мб:
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.
Breadfan вне форума   Ответить с цитированием
Старый 31.08.2011, 11:13   #2
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Ребяты ктонеть разобралса где считывать направление взгляда камеры? Хотябы какая там апи
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 31.08.2011, 20:44   #3
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Код:
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 вне форума   Ответить с цитированием
За это сообщение ALF нажился 3 спасибками от:
Старый 01.09.2011, 10:26   #4
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

вьюпорт не совсем то что нужно камера скорее свойство какойнеть ugameengine. Вьюпорт в лице главного окна отвечает за весь конечный ввод-вывод user<->engine.
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 01.09.2011, 11:22   #5
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

В 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
...............................................
..............................................
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 01.09.2011, 11:32   #6
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Канвас помоему дря рендеренга на плоскости только.
Если метод есть там наверняка фигурирует ченеть типа FOV или view
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 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 сообщенях
mira пока неопределено
По умолчанию

ну вот так и думал что какоенеть View )

Добавлено через 10 часов 33 минуты
А не пробывал взять в хуке сразу из rotator? В нем мб нече кроме yaw.pitch.roll кватерниона и нет нефига. А с таким смещением в контроллере тема не очень нравитса...
__________________
читернуть бы ништяг

Последний раз редактировалось mira, 02.09.2011 в 10:56. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
Старый 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 пока неопределено
По умолчанию

удалил. тупые вопросы.

Последний раз редактировалось Anfet, 10.09.2011 в 17:05.
Anfet вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Полезности



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:05.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!