Другое С/С++ Вопрос - Ответ

moreveal

Известный
Проверенный
846
519
используя этот гайд сделал модуль, но при подключении любой графической библиотеки (boost gil, sfml graphics, freeimage) и последующем добавлении любых из их функций в код (т.е. даже в тот участок кода, который не вызывается), скрипт перестаёт видеть dll с соответствующей ошибкой в логе, как это можно исправить?
Код:
[21:53:28.481123] (error)   test.lua: error loading module 'library' from file 'D:\gta\moonloader\lib\library.dll':
    Не найден указанный модуль.

stack traceback:
    [C]: in ?
    [C]: in function 'require'
    D:\gta\moonloader\test.lua:4: in main chunk
 
  • Нравится
Реакции: Z3roKwq

!Sam#0235

Активный
107
35
Why does the string "CambiarColor" not work for me?
I mean, in the sprintf the text is not shown
I have the "CambiarColor" stored as char
C++:
             string CambiarColor = "{0000FF}";
            }
            if (!pshow < 201 && pi == true && autocolor == true)
            {
              sprintf(pall, "%s %d", CambiarColor, pshow);
 

Unknown_251

Новичок
19
1
Как проверить была ли нажата кнопка мыши (например левая) с помощью SAMPFUNCS?
Желательно без вешания обработчика событий на окно игры.
 

0Z0SK0

Участник
36
15
Как я могу сделать то же самое, но на C++? (Я просто хочу научиться отправлять данные в дискорд)) (.asi — .sf)
Lua:
local encoding = require 'encoding' -- подключаем для корректной отправки русских букв
encoding.default = 'CP1251'
u8 = encoding.UTF8
local sampev = require 'lib.samp.events' -- подключаем для хука отправки ответа на диалог
local effil = require 'effil' -- для ассинхронных запросов

local url = 'URL'
local data = {
   ['content'] = '', -- текст (меняется через команду, так что можно оставить пустым)
   ['username'] = 'Sended from .lua script!', -- ник отправителя
   ['avatar_url'] = 'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif', -- ссылка на аватарку (можно убрать, будет дефолтная)
   ['tts'] = false, -- tts - text to speech - читалка сообщений (true/false)
   -- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}

function main()
   while not isSampAvailable() do wait(0) end
   sampRegisterChatCommand('ds.msg', function(arg)
      data['username'] = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) -- ник отправителя = ник в игре
      data['content'] = arg -- делаем что бы текст сообщения был равен тексту который мы ввели после команды
      -- отправляем запрос
      asyncHttpRequest('POST', url, {headers = {['content-type'] = 'application/json'}, data = u8(encodeJson(data))},
      function(response)
         print('[WebHook] [OK] отправлено!')
      end,
      function(err)
         print('[WebHook] [ERROR] error: '..err)
      end)
   end)
   wait(-1)
end

-- функция для отправки ассинхронных сообщений
function asyncHttpRequest(method, url, args, resolve, reject)
   local request_thread = effil.thread(function (method, url, args)
      local requests = require 'requests'
      local result, response = pcall(requests.request, method, url, args)
      if result then
         response.json, response.xml = nil, nil
         return true, response
      else
         return false, response
      end
   end)(method, url, args)
   -- Если запрос без функций обработки ответа и ошибок.
   if not resolve then resolve = function() end end
   if not reject then reject = function() end end
   -- Проверка выполнения потока
   lua_thread.create(function()
      local runner = request_thread
      while true do
         local status, err = runner:status()
         if not err then
            if status == 'completed' then
               local result, response = runner:get()
               if result then
                  resolve(response)
               else
                  reject(response)
               end
               return
            elseif status == 'canceled' then
               return reject(status)
            end
         else
            return reject(err)
         end
         wait(0)
      end
   end)
end
libcurl + хук самп-клиентовских функций
 
  • Нравится
Реакции: !Sam#0235

EclipsedFlow

Известный
Проверенный
1,040
459
Why does the string "CambiarColor" not work for me?
I mean, in the sprintf the text is not shown
I have the "CambiarColor" stored as char
C++:
             string CambiarColor = "{0000FF}";
            }
            if (!pshow < 201 && pi == true && autocolor == true)
            {
              sprintf(pall, "%s %d", CambiarColor, pshow);
Try passing sprintf not std::string, but const char* -> CambiarColor.c_str()
 
  • Нравится
Реакции: !Sam#0235

Dark_Knight

Me, me and me.
Друг
4,056
2,075
i think so, the error occurs with this code
C++:
            if (pshow >= 174)
            {
              const char* CambiarColor = "{0000FF}";
            }
            if (!pshow < 201 && pi == true && autocolor == true)
            {
              sprintf(pall, "%s %d", CambiarColor.c_str(), pshow);
              pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false);
            }
The code is correct. His work logic is not correct. In the second condition, there is no variable CambiarColor and char it type and he has't member's functions.
 
  • Нравится
Реакции: EclipsedFlow и !Sam#0235

EclipsedFlow

Известный
Проверенный
1,040
459
i think so, the error occurs with this code
C++:
            if (pshow >= 174)
            {
              const char* CambiarColor = "{0000FF}";
            }
            if (!pshow < 201 && pi == true && autocolor == true)
            {
              sprintf(pall, "%s %d", CambiarColor.c_str(), pshow);
              pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false);
            }
C++:
const char* CambiarColor = "{0000FF}";

if (pshow >= 174)
{
    // example
    printf("%s", CambiarColor);
}
if (!pshow < 201 && pi == true && autocolor == true)
{
    char pall[64] = {0};
    sprintf(pall, "%s %d", CambiarColor, pshow);
    pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false);
}
 
  • Нравится
Реакции: !Sam#0235