Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

C++ Metin2 (python27 - PickCloseItem) Source

LunaUI

Level 5
Uzman
Katılım
8 Şub 2022
Konular
110
Mesajlar
675
Online süresi
2mo 19d
Reaksiyon Skoru
767
Altın Konu
5
Başarım Puanı
175
Yaş
29
MmoLira
16,253
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

kullanım video'su

visual studio boş proje olustur (Source Files - kısmına .cpp ekle adı farketmez)
icine yapıstır o kadar
[CODE lang="cpp" title="pythhon27"]class Exception : public std::runtime_error {
public:
explicit Exception(const std::string& msg) : std::runtime_error(msg) {}
};
class python27 {
public:
explicit python27(HMODULE pythonModule) {
loader(pythonModule);
if (p_PyEval_InitThreads) p_PyEval_InitThreads();
}
void* Function(const char* Module, const char* funnction) {
void* g = AcquireGIL();
void* mod = p_PyImport_ImportModule(Module);
if (!mod) { ReleaseGIL(g); throw Exception(std::string("Failed to import module ") + Module); }
void* func = p_PyObject_GetAttrString(mod, funnction);
if (!func) { p_Py_DecRef(mod); ReleaseGIL(g); throw Exception(std::string("Failed to get func ") + funnction); }
void* result = p_PyObject_CallObject(func, nullptr);
p_Py_DecRef(func);
p_Py_DecRef(mod);
ReleaseGIL(g);
if (!result) throw Exception(std::string("Call failed ") + funnction);
return result;
}
void* WithTuple(void* Obj, void* Argument) {
if (!Obj || !Argument) throw Exception("WithTuple: Obj or args is null");
void* g = AcquireGIL();
void* result = p_PyObject_CallObject(Obj, Argument);
ReleaseGIL(g);
if (!result) throw Exception("WithTuple failed");
return result;
}
void* AcquireGIL() {
if (p_PyGILState_Ensure) return p_PyGILState_Ensure();
return nullptr;
}
void ReleaseGIL(void* state) {
if (p_PyGILState_Release && state) p_PyGILState_Release(state);
}
int TupleSize(void* obj) { return p_PyTuple_Size ? (int)p_PyTuple_Size(obj) : 0; }
void* TupleGetItem(void* obj, int idx) { return p_PyTuple_GetItem ? p_PyTuple_GetItem(obj, idx) : nullptr; }
double FloatAsDouble(void* obj) { return p_PyFloat_AsDouble ? p_PyFloat_AsDouble(obj) : 0.0; }
void DecRef(void* obj) { if (p_Py_DecRef && obj) p_Py_DecRef(obj); }
void* Tuple_New(long size) { if (!p_PyTuple_New) throw Exception("PyTuple_New not loaded"); return p_PyTuple_New(size); }
int Tuple_SetItem(void* tuple, long idx, void* item) { if (!p_PyTuple_SetItem) throw Exception("PyTuple_SetItem not loaded"); return p_PyTuple_SetItem(tuple, idx, item); }
void* Long_FromLong(long value) { if (!p_PyLong_FromLong) throw Exception("PyLong_FromLong not loaded"); return p_PyLong_FromLong(value); }
void* (*p_PyImport_ImportModule)(const char*) = nullptr;
void* (*p_PyObject_GetAttrString)(void*, const char*) = nullptr;

private:
int (*p_PyRun_SimpleStringFlags)(const char*, void*) = nullptr;
void* (*p_PyGILState_Ensure)() = nullptr;
void (*p_PyGILState_Release)(void*) = nullptr;
void (*p_PyEval_InitThreads)() = nullptr;
void* (*p_PyObject_CallObject)(void*, void*) = nullptr;
long (*p_PyLong_AsLong)(void*) = nullptr;
void (*p_Py_DecRef)(void*) = nullptr;
long (*p_PyTuple_Size)(void*) = nullptr;
void* (*p_PyTuple_GetItem)(void*, int) = nullptr;
double (*p_PyFloat_AsDouble)(void*) = nullptr;

void* (*p_PyTuple_New)(long) = nullptr;
int (*p_PyTuple_SetItem)(void*, long, void*) = nullptr;
void* (*p_PyLong_FromLong)(long) = nullptr;

void loader(HMODULE pythonModule) {
if (!pythonModule) throw Exception("module is null");

p_PyRun_SimpleStringFlags = reinterpret_cast<decltype(p_PyRun_SimpleStringFlags)>(GetProcAddress(pythonModule, "PyRun_SimpleStringFlags"));
p_PyGILState_Ensure = reinterpret_cast<decltype(p_PyGILState_Ensure)>(GetProcAddress(pythonModule, "PyGILState_Ensure"));
p_PyGILState_Release = reinterpret_cast<decltype(p_PyGILState_Release)>(GetProcAddress(pythonModule, "PyGILState_Release"));
p_PyEval_InitThreads = reinterpret_cast<decltype(p_PyEval_InitThreads)>(GetProcAddress(pythonModule, "PyEval_InitThreads"));
p_PyImport_ImportModule = reinterpret_cast<decltype(p_PyImport_ImportModule)>(GetProcAddress(pythonModule, "PyImport_ImportModule"));
p_PyObject_GetAttrString = reinterpret_cast<decltype(p_PyObject_GetAttrString)>(GetProcAddress(pythonModule, "PyObject_GetAttrString"));
p_PyObject_CallObject = reinterpret_cast<decltype(p_PyObject_CallObject)>(GetProcAddress(pythonModule, "PyObject_CallObject"));
p_PyLong_AsLong = reinterpret_cast<decltype(p_PyLong_AsLong)>(GetProcAddress(pythonModule, "PyLong_AsLong"));
p_Py_DecRef = reinterpret_cast<decltype(p_Py_DecRef)>(GetProcAddress(pythonModule, "Py_DecRef"));
p_PyTuple_Size = reinterpret_cast<decltype(p_PyTuple_Size)>(GetProcAddress(pythonModule, "PyTuple_Size"));
p_PyTuple_GetItem = reinterpret_cast<decltype(p_PyTuple_GetItem)>(GetProcAddress(pythonModule, "PyTuple_GetItem"));
p_PyFloat_AsDouble = reinterpret_cast<decltype(p_PyFloat_AsDouble)>(GetProcAddress(pythonModule, "PyFloat_AsDouble"));
p_PyTuple_New = reinterpret_cast<decltype(p_PyTuple_New)>(GetProcAddress(pythonModule, "PyTuple_New"));
p_PyTuple_SetItem = reinterpret_cast<decltype(p_PyTuple_SetItem)>(GetProcAddress(pythonModule, "PyTuple_SetItem"));
p_PyLong_FromLong = reinterpret_cast<decltype(p_PyLong_FromLong)>(GetProcAddress(pythonModule, "PyLong_FromLong"));

if (!p_PyGILState_Ensure || !p_PyGILState_Release || !p_PyImport_ImportModule ||
!p_PyObject_GetAttrString || !p_PyObject_CallObject || !p_Py_DecRef || !p_PyTuple_Size ||
!p_PyTuple_GetItem || !p_PyFloat_AsDouble || !p_PyTuple_New || !p_PyTuple_SetItem || !p_PyLong_FromLong)
{
throw Exception("export gg!");
}
}
};[/CODE]
kullanımı
[CODE lang="cpp" title="Kullanım"]namespace engsdk
{
double PythonPlayerPickCloseItem(python27& py, double eh, const char* Module, const char* Name) {
void* result = nullptr;
try {
result = py.Function(Module, Name);
}
catch (const Exception& e) {
return eh;
}
if (!result) return eh;
void* GIL = py.AcquireGIL();
eh = py.FloatAsDouble(result);
py.ReleaseGIL(GIL);
py.DecRef(result);
return eh;
}
}

DWORD WINAPI engine_packet(LPVOID lpParam) {
HMODULE py27 = LoadLibraryA("python27.dll");
if (!py27) {
DWORD Error = GetLastError();
char buf[256] = { 0 };
return 1;
}

try {
python27 py(py27);

while (true)
{
engsdk::PythonPlayerPickCloseItem(py,10.10, "player", "PickCloseItem");
}
}
catch (const Exception& ex) {
std::cout << "gg!: " << ex.what() << std::endl;
}

FreeLibrary(py27);
FreeConsole();
return 0;
}[/CODE]
 
Son düzenleme:
Teşekkürler
 
Paylaşım için teşekkürler
 
Eline sağlık
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst