Другое SAMPFUNCS | API C++

urShadow

Потрачен
Автор темы
21
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Таймером.
 

Sire Like

Blanche Bier
Друг
487
233
В SAMPFUNCS API "классы" что-то типа опкодов в cleo, да? Так вот, как можно узнать эти "опкоды"? То есть я захожу в класс CGAME, и там мне надо найти какой нибуть опкод (Типа is_key_pressed и.т.д). Как их найти?
нет. Классы в С++, можешь загуглить. Можешь писать например так "SF->" и тебе будут предлагаться варианты. Дальше сам думай что тебе нужно .
 

Sire Like

Blanche Bier
Друг
487
233
я не знаю что такое хендл.

про переменные пиздил с гугла а то лень писать

PHP:
int a; // объявление переменной a целого типа.
float b; // объявление переменной b типа данных с плавающей запятой.
double c = 14.2; // инициализация переменной типа double. 
char d = 's'; // инициализация переменной типа char. 
bool k = true; // инициализация логической переменной k.

К примеру int a = 0;
 

Woofing Giraffe

Активный
402
49
Как телепортировать персонажа к другому игроку?
Искал в SF->getSAMP()->getPlayers(), getSamp, getCLEO, но так и не нашел.
Смотри, получаешь хэндлы обоих игроков, получаешь координаты одного из них и ставишь второго на эти координаты.
 

0pc0d3R

Потрачен
550
270
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А как поставить одного из них на координаты? Хендл получил, позицию получил.
C++:
void __stdcall utp(std::string param)
{
  if (param.empty()) return;
  int i = std::stoi(param);
  actor_info *acter = SF->getGame()->actorInfoGet(-1, 0x01);
   acter->base.matrix[4 * 3] = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->fOnFootPos[0];
   acter->base.matrix[4 * 3 + 1] = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->fOnFootPos[1];
   acter->base.matrix[4 * 3 + 2] = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->fOnFootPos[2];
}
 

Woofing Giraffe

Активный
402
49
C++:
bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride,
    CONST RGNDATA *pDirtyRegion)
{
    if (SUCCEEDED(SF->getRender()->BeginRender()))
    {
        stFontInfo *pFont;
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present);
        pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
        pFont->Print("10%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("20%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("30%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("40%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("50%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("60%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("70%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("80%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("90%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("100%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print(" Loaded!", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        SF->getRender()->EndRender();
    };

    return true;
};

void CALLBACK mainloop()
{
и.т.д
}
Чёт не так значит.
Код:
pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
Вот твоя ошибка. Этот callback является циклом, который выполняется несколько раз в секунду, а ты в нем регистрируешь новый шрифт. Поэтому и не запускается. Регистрируй в mainloop.
//=============================================================================================================
Код:
stFontInfo *pFont;
это после инклюдов пихаешь,
Код:
bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
{
    if (SUCCEEDED(SF->getRender()->BeginRender()))
    {    
        pFont->Print("10%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("20%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("30%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("40%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("50%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("60%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("70%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("80%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("90%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print("100%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        pFont->Print(" Loaded!", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
        SF->getRender()->EndRender();
    };
    return true;
};
Это куда тебе надо.
Код:
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present);
        pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
А это в мэйн. У меня работает.
 
Последнее редактирование: