- 1,038
- 462
Краш игры, иДля std::string следует использовать метод .c_str()
Для выводы HDD скорее тебе требуется: "%X"C++:lines.c_str()
Краш игры, иДля std::string следует использовать метод .c_str()
Для выводы HDD скорее тебе требуется: "%X"C++:lines.c_str()
После проверки, 7 строка.когда в лог выводишь....
std::ifstream file(license_txt);
if (file.is_open())
{
std::string lines;
while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now
{
if (lines == hdd_now) {
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки куплена, приятного использования");
}
else
{
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки нету, её нужно купить");
}
}
file.close();
}
После проверки, 7 строка.
C++:std::ifstream file(license_txt); if (file.is_open()) { std::string lines; while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now { if (lines == hdd_now) { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки куплена, приятного использования"); } else { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки нету, её нужно купить"); } } file.close(); }
std::ifstream file(license_txt);
if (file.is_open())
{
std::string lines;
while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now
{
if (lines == hdd_now) {
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt.c_str(), hdd_now.c_str(), lines.c_str());
msg("Подписки куплена, приятного использования");
}
else
{
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt.c_str(), hdd_now.c_str(), lines.c_str());
msg("Подписки нету, её нужно купить");
}
}
file.close();
}
size_t write_data_file(void* ptr, size_t size, size_t nmemb, FILE* stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
} // Доп. функция, строка 14
void download_file()
{
std::string file_txt = game_directory() + "\\SAMPFUNCS\\lic.txt";
CURL* curl = curl_easy_init();
if (curl) {
FILE* fp = fopen(file_txt.c_str(), "wb");
curl_easy_setopt(curl, CURLOPT_URL, "url");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data_file);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
CURLcode res = curl_easy_perform(curl);
SF->Log(curl_easy_strerror(res)); // Вывод лога
curl_easy_cleanup(curl);
fclose(fp);
}
компиль курл статическиПри добавлении этой функции в исполнение, плагин SF не загружается вообще.
C++:size_t write_data_file(void* ptr, size_t size, size_t nmemb, FILE* stream) { size_t written = fwrite(ptr, size, nmemb, stream); return written; } // Доп. функция, строка 14 void download_file() { std::string file_txt = game_directory() + "\\SAMPFUNCS\\lic.txt"; CURL* curl = curl_easy_init(); if (curl) { FILE* fp = fopen(file_txt.c_str(), "wb"); curl_easy_setopt(curl, CURLOPT_URL, "url"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data_file); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); CURLcode res = curl_easy_perform(curl); SF->Log(curl_easy_strerror(res)); // Вывод лога curl_easy_cleanup(curl); fclose(fp); }
Если я думаю правильно где-то была строка со слово Static, после инициализации библиотеки, её нежно добавить или как правильно?компиль курл статически
CURL_STATICLIB в параметры препроцессора простоЕсли я думаю правильно где-то была строка со слово Static, после инициализации библиотеки, её нежно добавить или как правильно?
URLDownloadToFilе не варик?И это ради того чтобы скачать txt файл по прямой ссылке, еслиб lua можно было скрыть код - цены не было у него с его нынешней реализацией moonloader
Нихера не работает друг, я уже как только не пробовал, failed и всеURLDownloadToFilе не варик?
Попробуй скачать через эту функцию, нифига блинаURLDownloadToFilе не варик?
Значит не правильно ты используеш urldownloadtofile, надо там указывать адрес на файл, чтоб в конце было filename.txtНихера не работает друг, я уже как только не пробовал, failed и все
Как проверить, если точка на экране для рендера, аналог isPointOnScreen() на Lua
CVector2D get_screen_coords(CVector vecWorld) {
float x, y, z;
double fRecip;
const D3DXMATRIX m{ reinterpret_cast<float*>(0xB6FA2C) };
unsigned long dwLenX = *reinterpret_cast<unsigned long*>(0xC17044);
unsigned long dwLenY = *reinterpret_cast<unsigned long*>(0xC17048);
x = (vecWorld.z * m._31) + (vecWorld.y * m._21) + (vecWorld.x * m._11) + m._41;
y = (vecWorld.z * m._32) + (vecWorld.y * m._22) + (vecWorld.x * m._12) + m._42;
z = (vecWorld.z * m._33) + (vecWorld.y * m._23) + (vecWorld.x * m._13) + m._43;
fRecip = 1.0 / z;
x *= static_cast<float>(fRecip * dwLenX);
y *= static_cast<float>(fRecip * dwLenY);
return { x, y };
}
bool is_point_on_screen(CVector vecWorld) {
const D3DXMATRIX m{ reinterpret_cast<float*>(0xB6FA2C) };
const unsigned long dwLenX = *reinterpret_cast<unsigned long*>(0xC17044);
const unsigned long dwLenY = *reinterpret_cast<unsigned long*>(0xC17048);
float z;
z = (vecWorld.z * m._33) + (vecWorld.y * m._23) + (vecWorld.x * m._13) + m._43;
return z >= 1.0f;
}
// mainloop
char buf[128];
sprintf(buf, "~r~Good send: ~w~%d~n~~r~Speed: ~w~%d", unc_fuck.vehicleId, unc_fuck.speed);
printStringNow(buf, 300, NULL, false);
//fuction
void printStringNow(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))0x69F1E0)(text, time, flag, bPreviousBrief);
}
memsafe::copy((void*)0x522F6A, "\xE9\xA7\x03\x00\x00\x90", 6);
memsafe::copy((void*)0x4B3296, "\x90\x90\x90", 3);