Как реализовать вызов из unreal script

  • Автор темы Автор темы Maksim
  • Дата начала Дата начала

Maksim

Гений мысли
Проверенный
Сообщения
1 255
Розыгрыши
0
Решения
7
Репутация
723
Реакции
1 171
Баллы
1 838
Всем доброго утра, дня, вечера, ночи.
Задался вопросом как реализовать из unreal script передачу параметра в кастомную dll которую прикрепляешь через cff explorer к fire.dll например.
Банально передать текст из unreal script и чтобы эта DLL вывела сообщение в окне.

Просто пытаюсь сделать минимальное, если кто может помогите разобраться с этим вопросом.
Это поможет не только мне, но и всем. ??
 
ну с таким подходом не выйдет сделать ибо нейросеть не даст нормальный код без кучи уточнении.


 
Решение
Спасибо, на самом деле подход всегда такой. Часть в гпт, остальное подправить. Так если делать, то действительно рано еще полагаться на аи. Вот выпустят gpt 7, тогда можно еще "наверное". ?
 
@Maksim, Правила. Видимо пора вносить в правила вообще в целом, как и код сгенерированный, так и продажи, как было недавно в теме
 
C++:
    // OnEvent интерфейса
    typedef void(_fastcall* _OnEvent) (unsigned int This, unsigned int EDX, int Event_ID, FString* param);
    _OnEvent true_OnEvent;

    
    if ((addr = GetProcAddress(hNWindow, "?eventOnEvent@UUIScript@@QAEXHABVFString@@@Z")) == 0)
    {
        //return false;
    }else
    {
        true_OnEvent = (_OnEvent)splice((unsigned char*)addr, new_OnEvent);
    }
    

    
// OnEvent интерфейса
void _fastcall new_OnEvent(unsigned int This, unsigned int EDX, int Event_ID, FString *param)
{   
    if (param->IsValid())
    {
        std::string str = param->ToString();
        printf("Event_ID=%d ", Event_ID);
        cout << str;
        printn();
    }
    else
    {
        printf("Event_ID=%d param=inValid\n", Event_ID);
        printn();
    }
    //*/
}
FString (Lineage 2 SDK: High Five v273) на просторах интернета. сам сорц dll какой то защиты для HF4. то что на скрине артея.
 

Вложения

  • 2024-11-04_13-40-46.webp
    12 КБ · Просмотры: 82

Макросы из какого-то старого UE (1997-1999)

Код:
#define P_GET_STR(var)                FString var;                         Stack.Step( Stack.Object, &var    );
#define P_FINISH                    Stack.SkipByte();

Структура FFrame тоже из старого UE
C++:
//
// Information about script execution at one stack level.
//
struct CORE_API FFrame : public FOutputDevice
{
    // Variables.
    UStruct*        Node;
    UObject*        Object;
    BYTE*            Code;
    BYTE*            Locals;
    FConstRefParm*    ConstRefs;

    // Constructors.
    FFrame( UObject* InObject );
    FFrame( UObject* InObject, UStruct* InNode, INT CodeOffset, void* InLocals );
    ~FFrame();

    // Functions.
    void Step( UObject* Context, RESULT_DECL );
    void Serialize( const TCHAR* V, enum EName Event );
    INT ReadInt();
    INT ReadIntInPlace(); // ReadInt but don't advance code pointer.
    UObject* ReadObject();
    UObject* ReadObjectInPlace(); // ReadObject but don't advance code pointer.
    FLOAT ReadFloat();
    INT ReadWord();
    FName ReadName();
    BYTE* GetLocalValue(class UProperty* P);
    BYTE* GetLocalValueIndex(class UProperty* P, INT Index);
    BYTE ReadByte();
    void SkipBytes(const INT Count);
    void SkipByte();
    void VerifyByte(EExprToken Expr);
    void Jump(const INT CodeOffset);

    // Const refs that can be stacked onto this frame.
    void ClearConstRefs();
    BYTE* AllocConstRef(UProperty* P);

    // Dump full UScript call stack to Log.
    static void DumpUScriptStack();
};


 

Hi, could you please tell what actually is ptrUUIScript and how you got that? is it pointer to `??0UUIScript@@QAE@XZ` from NWindow.dll?
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…